Генерация хэш-идентификатора запроса в Instagram - PullRequest
0 голосов
/ 16 декабря 2018

Я пытаюсь найти способ сгенерировать хэш запроса для указанного пользователя в 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')
...