我一直在使用该requests
库来挖掘这个网站.我没有在10分钟内提出太多要求.说25.突然间,网站给了我404错误.
我的问题是:我在某处读到,使用浏览器获取URL与获取类似于某个URL的URL不同requests
.因为requests
获取不会获得cookie和浏览器的其他内容.是否可以选择requests
模拟浏览器,以便服务器不认为我是机器人?或者这不是问题吗?
基本上,你可以做的至少一件事是发送User-Agent
标题:
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0'} response = requests.get(url, headers=headers)
此外requests
,您可以使用selenium模拟真实用户- 它使用真正的浏览器 - 在这种情况下,显然没有简单的方法可以区分您的自动用户与其他用户.Selenium也可以使用"无头"浏览器.
另外,检查您正在抓取的网站是否提供了API.如果没有API或您没有使用它,请确保您知道该网站是否真的允许这样的自动网络爬行,研究Terms of use
.你知道,在一段时间内请求过多后,他们可能会阻止你.
另见:
使用Python中的Requests库发送"User-agent"
使用Python和PhantomJS进行无头硒测试