gpt4 book ai didi

python - Instagram 私有(private) API 403,即使有 cookie 和 header

转载 作者:太空宇宙 更新时间:2023-11-04 04:44:50 24 4
gpt4 key购买 nike

需要您的建议来避免 403 私有(private) Isntagram API 的使用。

我在网络上重复使用了一个 istagram scraper 代码。我做了几次尝试,甚至连标题和 cookie 都看起来接下来。从 post url 中直接获取信息并提取它没有问题。虽然,发表评论跨越多个页面并切换到下一个我需要通过身份验证。这只是测试身份验证的第一步。

    from botocore.vendored import requests
import urllib.parse
import hashlib
import json
def lambda_handler(event, context):
CHROME_UA = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'
def getSession(rhx_gis, csrf_token, variables):
""" Get session preconfigured with required headers & cookies. """
#"rhx_gis:csfr_token:user_agent:variables"
print(variables)
values = "%s:%s:%s:%s" % (
rhx_gis,
csrf_token,
CHROME_UA,
variables)
x_instagram_gis = hashlib.md5(values.encode()).hexdigest()

session = requests.Session()
session.headers = {
'user-agent': CHROME_UA,
'x-instagram-gis': x_instagram_gis
}
print(x_instagram_gis)
session.cookies.set('ig_pr', '2')
session.cookies.set('csrftoken', csrf_token)

return session

def runX():
session = requests.Session()
session.headers = { 'user-agent': CHROME_UA }
response = session.get("https://www.instagram.com/selenagomez")
data = json.loads(response.text.split("window._sharedData = ")[1].split(";</script>")[0])
csrf = data['config']['csrf_token']
rhx_gis = data['rhx_gis']
variables = '{"id":"460563723","first":10,"after":"AQBf8puhlt8nU2JzmYdMMTuH0FbMgUM1fnIOZIH7n94DM4VLWkVILUAKVB-5dqvxQEI-Wd0ttlEDzimaaqwC98jccQaDQT4tSF56c_NlWi_shg"}'
session = getSession(rhx_gis, csrf, variables)

query_hash = '33ba35852cb50da46f5b5e889df7d159'
encoded_vars = urllib.parse.quote(variables, safe='"')
url = 'https://www.instagram.com/graphql/query/?query_hash=%s&variables=%s' % (query_hash, encoded_vars)
print(url)
opp = session.get(url)
print(opp.status_code)
runX();

4 月 16 日更新 -> 已修复

  1. 问题已解决,现已收到 200 个。将哈希更改为 query_hash = 'ac38b90f0f3981c42092016a37c59bf7'并从 x-instagram-gis 计算中删除用户代理:

    值 = "%s:%s:%s"% (rhx_gis,csrf_token,变量)

最佳答案

自 2018 年 4 月 23 日起,您似乎不再需要 cookie 管理或 csrf token 。以下应该是您所需要的:

def getSession(rhx_gis, variables):
values = "%s:%s" % (
rhx_gis,
variables)
x_instagram_gis = hashlib.md5(values.encode()).hexdigest()

session = requests.Session()
session.headers = {
'x-instagram-gis': x_instagram_gis
}

return session

关于python - Instagram 私有(private) API 403,即使有 cookie 和 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49847376/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com