Python爬虫爬豆瓣遇到Error 403问题怎么解决,python403,昨天爬豆瓣,没有出现过错
Python爬虫爬豆瓣遇到Error 403问题怎么解决,python403,昨天爬豆瓣,没有出现过错
昨天爬豆瓣,没有出现过错误,今早爬成功了一次,接着全部报错。
个人推测,问题在于网站禁止爬虫,如何伪装成浏览器访问?
根据这个stackoverflow答案改写,没有成功,仍然出现Error 403
不要爬页面了,直接爬api更速度,http://developers.douban.com/wiki/?title=guide
上面说每分钟40次可以忽视,实际上爬出的速度很快的,1小时用python能爬3W+本书吧,不过有时会封IP,不过过一段时间就好了
我最近在写一个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()
照着浏览器中request headers 的信息伪装下,注意加上抄上cookie的内容。还要注意抓取速度,太快会被发现。还有就是注意程序中的输出log, 发现403的话(注意程序中对错误url的retry),打开浏览器刷下下豆瓣,输入提示的验证码,因为同一个cookie的这么多次的请求也会被发现的。
当然api能提供的信息,就使用api。上述是要获取信息,api不提供时不得已的方法。
伪装成浏览器的话,主要还是header里的User-Agent字段
另外 requests 这个库用来写爬虫是相当不错的
编橙之家文章,
相关内容
- Python Java间导致json格式错误怎么解决,pythonjson,python端
- python操作mysql数据库,数据引擎设置为myisam时能够插入
- Python2.7源码分析,多线程报untound method __init__()错误,p
- Python如何读取csv文件内指定月份内的数据方法,,这是问
- python续点上传问题None bad token...,pythontoken..,为什么为我
- 请问python调用命令行是否能获取PID,pythonpid,python写了一
- Python2.6升级到Python2.7没有MySQL库求解决方式,python2.6p
- Python多个目录更新问题求助,python多个问题求助,from
- Python用经度纬度查询天气什么方式好,python经度,有没有
- 请问SAE用第三方提示:ImportError: No module named feedparser,
评论关闭