Я пытаюсь найти способ сгенерировать хэш запроса для указанного пользователя в Instagram.Для примера я просто буду использовать пользователя instagram.com/instagram.То, что я пытаюсь сделать, - это найти способ получить этот хэш-идентификатор запроса, БЕЗ жесткого его кодирования.Я пытался использовать BS4, но он не может быть проанализирован.Моя общая цель для получения этого хеш-идентификатора запроса состоит в том, чтобы иметь возможность использовать его для поиска фотографий на всех страницах.У меня есть успешная реализация, но опять же, я просто пытаюсь выяснить, как сгенерировать запрос с идентификатором вместо жесткого его кодирования.Спасибо всем тем, кто отвечает заранее.
import requests
import json
class IG:
def __init__(self, username, password):
self.username = username
self.password = password
self.session = requests.Session()
self.session.headers = {'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Mobile Safari/537.36'}
self.session.get('https://www.instagram.com/accounts/login/')
self.session.headers.update({'Referer': 'https://www.instagram.com/accounts/login/', 'x-csrftoken': self.session.cookies['csrftoken']})
if (json.loads(self.session.post('https://www.instagram.com/accounts/login/ajax/', data= {'username': self.username, 'password': self.password}, allow_redirects=True).content)['authenticated'] == True):
print("Login successful!")
else:
print("Login unsuccesful. Please try again.")
def getPosts(self, username):
self.session.get('https://www.instagram.com/' + username)
self.has_next_page = True
self.end_cursor = None
#while (self.has_next_page == True):
payload = {
# What I am trying to generate, without hardcoding.
"query_hash" : "66eb9403e44cc12e5b5ecda48b667d41",
"id" : "25025320",
"first" : 12,
"after": self.end_cursor
}
print(self.session.get('https://www.instagram.com/graphql/query/', params = payload).json())
IG = IG('usernameHere', 'passwordHere')
IG.getPosts('instagram')