我想不断抓取一个网站-每3-5秒使用一次
requests.get('http://www.example.com', headers=headers2, timeout=35).json()
但是示例网站有一个速率限制,我想绕过它。我该怎么办?我曾考虑过用代理来做,但是希望还有其他方法吗?
答案 0 :(得分:1)
您将不得不做一些非常底层的工作。利用可能的套接字和urllib2。
首先做你的研究。它们如何限制您的查询率?是通过IP还是基于会话的(服务器端Cookie)还是本地Cookie?我建议您作为研究的第一步,手动访问该网站,并使用网络开发工具查看所有已传达的标题。
您可以弄清楚这一点,创建一个计划来对其进行操作。 可以说它是基于会话的,您可以利用多个线程来控制刮板的多个单独实例,每个实例具有唯一的会话。
现在,如果它是基于IP的,那么您必须欺骗您的IP,这要复杂得多。
答案 1 :(得分:0)
只需购买很多代理即可。 并配置脚本以在服务器的速率限制时间之后将代理更改为下一个。