【问题标题】:Requests returns Too Many Requests status codeRequests 返回 Too Many Requests 状态码
【发布时间】:2021-05-03 04:48:53
【问题描述】:

目标是为帐户页面返回resp.text

当您运行此函数时,您会收到响应代码429,表明发出了太多请求。

即使在使用代理链运行脚本时 proxychains python3 file.py 返回相同的状态码

文件.py

import requests

def g3t_usr(acc):
    """ Surf to account page """
    resp = requests.get(f'https://www.instagram.com/{acc}/')

    if resp.status_code == 200:
        return resp.text
    else:
        print (resp.status_code)
    
    return resp.text 
 
acc="<some_random_user>"
g3t_usr(acc)

Instagram 是否检查 python 请求发出的请求并标记它们

【问题讨论】:

  • proxychains 是如何工作的?通常您可以在requests.get(...proxies=...) 中设置代理服务器。我不知道proxychans 是如何工作的,我也不能说requests 是否使用它。此外,requests 始终发送标头User-Agent: python/...,因此很容易识别它不是真正的网络浏览器,而是脚本/机器人。
  • 我在使用请求时总是设置我的 User-Agent 和 Origin。它会让你有更好的机会不被标记为机器人。
  • 查看他们的 robots.txt,他们可能会阻止请求,因为他们不允许所有未明确指定的用户代理的机器人。

标签: python python-requests


【解决方案1】:

尝试在标头中指定“用户代理”以使您的请求更“真实”,如下所示:requests.get(f'https://www.instagram.com/{acc}/', headers={"User-Agent": "Mozilla/5.0 (Android 4.4; Mobile; rv:41.0) Gecko/41.0 Firefox/41.0"})

在我这边,它成功了,我得到了状态码 200。

祝你好运!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-20
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-14
    • 1970-01-01
    相关资源
    最近更新 更多