Я предполагаю, что фотография, которой вы поделились, является скриншотом инспектора браузера. Хотя проверка кода является хорошим базовым руководством по поиску в Интернете, вы должны проверить, что получает BeautifullSoup. Если вы проверите печать soup
, вы увидите, что данные, которые вы ищете, представляют собой json внутри тега сценария. Таким образом, ваш код и любое другое решение, предназначенное для тега time
, не работают на BS4. Вы можете попробовать с селеном, может быть.
В любом случае, здесь идет псевдо-решение BeautifullSoup с использованием Instagram из вашего скриншота:
from bs4 import BeautifulSoup
import json
import re
import requests
import time
url_path = "https://www.instagram.com/srirachi9/"
response = requests.get(url_path)
soup = BeautifulSoup(response.content)
pattern = re.compile(r"window\._sharedData\ = (.*);", re.MULTILINE)
script = soup.find("script", text=lambda x: x and "window._sharedData" in x).text
data = json.loads(re.search(pattern, script).group(1))
times = len(data['entry_data']['ProfilePage'][0]['graphql']['user']['edge_owner_to_timeline_media']['edges'])
for x in range(times):
time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(data['entry_data']['ProfilePage'][0]['graphql']['user']['edge_owner_to_timeline_media']['edges'][x]['node']['taken_at_timestamp']))
Переменная times
это количество временных меток, которые содержит json. Это может выглядеть как ад, но это просто вопрос терпеливого следования структуре JSON и индексации соответственно.