Python爬虫: [urllib2.HTTPError: HTTP Error 403: Forbidden]

发布于 2022-08-28 12:27:10 字数 232 浏览 11 评论 0

昨天爬豆瓣,没有出现过错误,今早爬成功了一次,接着全部报错。
个人推测,问题在于网站禁止爬虫,如何伪装成浏览器访问?
根据这个stackoverflow答案改写,没有成功,仍然出现Error 403

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

少钕鈤記 2022-09-04 12:27:10

不要爬页面了,直接爬api更速度,http://developers.douban.com/wiki/?title=guide

上面说每分钟40次可以忽视,实际上爬出的速度很快的,1小时用python能爬3W+本书吧,不过有时会封IP,不过过一段时间就好了

绳情 2022-09-04 12:27:10

我最近在写一个Python的开源爬虫工具包,里面有模拟浏览器和模拟手机的header的封装:
http://blog.csdn.net/pleasecallmewhy/article/details/24021695

关于怎么模拟header这样应该就可以:

import urllib  
import urllib2  

url = 'http://www.baidu.com'
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'  
headers = { 'User-Agent' : user_agent }  
data = urllib.urlencode(values)  
req = urllib2.Request(url,  headers)  
response = urllib2.urlopen(req)  
the_page = response.read() 
自由如风 2022-09-04 12:27:10

伪装成浏览器的话,主要还是header里的User-Agent字段
另外 requests 这个库用来写爬虫是相当不错的

遇到 2022-09-04 12:27:10

照着浏览器中request headers 的信息伪装下,注意加上抄上cookie的内容。还要注意抓取速度,太快会被发现。还有就是注意程序中的输出log, 发现403的话(注意程序中对错误url的retry),打开浏览器刷下下豆瓣,输入提示的验证码,因为同一个cookie的这么多次的请求也会被发现的。
当然api能提供的信息,就使用api。上述是要获取信息,api不提供时不得已的方法。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文