Я создаю небольшой инструмент, использующий Python, который извлекает информацию о пользователях из профилей в Instagram. До сих пор я могу получать всю информацию, средства массовой информации, комментарии, лайки (..) и все это после успешного входа в систему. Единственная часть, которую я не могу получить, - это часть, где Instagram window.sharedData сообщает нам, следует ли пользователь за пользователем или нет. В этой части все, что я получаю, это:
window._sharedData = {"config":{"csrf_token":"********************","viewer":null,"viewerId":null}
Когда я открываю браузер, программа просмотра должна заполняться пользователем, которого я использую для доступа к этой странице. Причина, по которой я ищу эту информацию, заключается в том, что мне нужно знать, сопровождается ли пользователь моим пользователем, прежде чем пытаться получить доступ к данным, особенно если этот пользователь является частным. И так как мой зритель имеет значение NULL, Instagram всегда возвращает «follow_by_viewer» как False, даже если я следую за ним.
PS: все остальные запросы работают (СМИ, лайки, комментарии, логин, подписчики)
Вот мой код информации о пользователе Grab:
response = requests.get(BASE_URL + username, headers=generate_headers(cookie))
json_match = re.search(r'window\._sharedData = (.*);</script>', response.text)
result = json.loads(json_match.group(1))['entry_data']['ProfilePage'][0]['graphql']['user']
try:
return {
'user_id': result.get("id"),
'username': username,
'fullname': result.get("full_name"),
}
except:
print("Unexpected error")
return None
Для возобновления, похоже, что только для этого запроса, Instagram считает, что я не вошел в систему, в то время как для всех остальных, я!