我用Python3.7编写了以下函数来生成x-instagram-gis。根据我对这个主题的研究,我认为我只需要rhx_gis和变量(id: profile_id,首先: int<50,after: end_cursor)来生成x-instagram-gis。
def generate_x_instagram_gis(rhx_gis, cursor, profile_id):
params = {
"id": profile_id,
"first": 12,
"after": cursor,
}
json_params = json.dumps(params, separators=(',', ':'))
values = "{}:{}".format(rhx_gis, json_params)
return hashlib.md5(values.encode('utf-8')).hexdigest()运行以下内容应该返回:90bd6b662f328642477076d92d599064
rhx_gis = "7733066781d53e86a089eeb454c5446d"
cursor = "QVFBZWRqS0RnbGMtaXJhQzhlRW01R0I2YngtVXNQOGRTZzdHZEdseGcyVE1MdUxFYmYyY011Zkx6dFZtQUlsYWNvRl9DWnhtalpXZ2daSU5YQnFNTFBGRg=="
profile_id = "6822549659" #https://www.instagram.com/kimimatiasraikkonen/
print(generate_x_instagram_gis(rhx_gis, cursor, profile_id))但是它返回:f5e1e4be6612701d43523d707e36672b
作为参考,我看了以下几个来源:
我不太清楚我在做什么不对,当我用我的整个程序运行这个程序时,它不起作用,这是在经过大量测试后导致问题的唯一部分。另外,我注意到在Python3.7和Python2.7上运行的MD5是不同的
发布于 2018-12-29 02:42:57
我已经想明白了。
rhx_gis值是根据在标头中发送的用户代理计算的。我所获得的rhx_gis值是使用python检索的,该请求设置了自己的用户代理(或类似的内容),而我在Postman上看到的rhx_gis值是使用不同的用户代理(设置在邮递员上)创建的。
为了解决这个问题,我必须在python请求中设置与Postman相同的用户代理。
headers = {
'User-Agent' : '' # user-agent here
}
requests.get(url, headers=headers)发布于 2019-01-05 05:55:57
Instagram似乎再次更新了API,并且更改了query_variable的格式。它看起来如下:
{
"id":"25025320",
"include_reel":true,
"fetch_mutual":false,
"first":13,
"after":"QVFDZV9udFJKbVk3OGNlOE1LeGx3V1g0aEUyNFNSQTFUenhWOFVkWktTVzdpdUJRSk9EQXY3Ym9QQXFwTWJEci1pYklhSHFGQU1PTnl6QmhZbGpjalplSQ=="
}https://stackoverflow.com/questions/53958252
复制相似问题