抽象的 2024-04-07 11:26 采纳率: 100%
浏览 33
已结题

如何阻止微信文章对爬取频率过高的反爬

在爬取微信文章过程中请求回来的响应:

{"base_resp":{"err_msg":"freq control","ret":200013}}

但是已经设置了随机时间等待

time.sleep(random.randint(1, 10))
            requests.packages.urllib3.disable_warnings()
            resp = requests.get(url, headers=headers, params=params, verify=False)

请问实际应该设置多长时间的等待时间才能防止出现这个问题。

  • 写回答

5条回答 默认 最新

  • GISer Liu 2024-04-07 11:50
    关注

    该回答引用自GPT-3.5,由博主GISer Liu编写:

    针对微信文章反爬虫频率限制的问题,需要考虑以下几个方面来解决:

    1. 随机等待时间:你已经在代码中使用了 time.sleep(random.randint(1, 10)) 来随机等待1到10秒,这是一个不错的做法。可以考虑增加等待时间的上限,比如 time.sleep(random.randint(1, 30)),以增加请求的间隔时间。
    2. IP代理:使用IP代理可以避免对同一IP的频繁请求。可以使用代理池来获取随机IP,确保每次请求都使用不同的IP地址。
    3. 用户代理:使用不同的用户代理(User-Agent)来模拟不同的用户请求,避免被识别为爬虫。
    4. 限制请求频率:虽然已经使用了随机等待时间,但可以考虑根据具体情况进一步调整等待时间,或者在遇到频率限制时进行指数退避等策略,逐渐增加等待时间。
    5. 其他反爬措施:除了频率限制外,微信可能还有其他反爬措施,比如验证码、JS渲染等,需要根据具体情况进行处理。
      总的来说,综合考虑以上因素,可以调整等待时间,并结合IP代理、用户代理等策略来降低被识别为爬虫的概率,从而避免频率限制的问题。

    如果该回答解决了您的问题,请采纳!如果没有,请私信联系或评论您的疑惑

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 4月15日
  • 已采纳回答 4月7日
  • 创建了问题 4月7日