python - 为什么通过浏览器和网络应用程序的 Instagram 搜索结果存在差异?
问题描述
当我通过浏览器在 Instagram 搜索一些标签时,它会向服务器发送请求,如下所示:
并响应 JSON 内容 100 个类似的标签。
当我从基于 Flask 的网络应用程序发出这样的请求时,我只收到了 55 个类似的标签。我不明白为什么。
我尝试像浏览器一样编写标题,但结果是一样的。我找到了一些可以测试 GET 查询的免费服务,但结果是一样的。
这是进行查询的 Flask 函数:
def query():
headers = {'authority': 'www.instagram.com',
'method': 'GET',
'scheme': 'https',
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7',
'cache-control': 'max-age=0',
'cookie': 'rur=FTW; mid=XEXhXgAEAAFQ0Lg-pAfeVCCnUTzw; mcd=3; csrftoken=IeAstJqVSC7I3TYuKDoCxuGOI5kq4OL3',
'upgrade-insecure-requests': '1',
'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36',
'x-compress': 'null',
'x-requested-with': 'XMLHttpRequest'
}
payload = {'query': request.args.get('text')}
baseUrl = 'https://www.instagram.com/web/search/topsearch/'
try:
response = requests.get(baseUrl, params=payload, headers=headers)
response.raise_for_status()
except requests.RequestException:
return None
它工作正常,但我希望得到 100 个结果,而不是 55 个。
如果你有一些想法,请告诉我。
ps可能是因为会话参数吗?
解决方案
推荐阅读
- python - 如何在 Beautiful Soup python 中阅读#document
- php - 未定义的属性:stdClass::$salarie
- linux - 如何使用 bash/awk 在列中显示我的脚本的输出?
- python - 将名称附加到许多 __init__*.py 是如何工作的?
- python - aiohttp客户端连接错误,但是我可以在网上找到网站就好了?
- c++ - 我想知道如何在边缘添加名称?我是 Dijkstra 算法的新手
- python-3.x - 虚拟环境不会在 Windows 10 上创建
- java - 如何使用来自 Firebase 实时数据库的电子邮件检索数据?
- batch-file - 在引号内连接 Windows 批处理文件命令中的变量和字符串
- php - 无法添加默认标题图片