Scrapy爬取百度股票时遇403错误的解决方法
2017-05-08 20:18
435 查看
问题:用Scrapy爬取百度股票的单支股票信息时,遇到403拒绝访问错误,这应该是触发了反爬机制。
解决方法:通过尝试发现百度股票(http://gupiao.baidu.com)反爬机制是检测User-Agent,因此这里可以通过使用随机User-Agent来进行爬取。
首先,这是网上找来的常用User-Agent列表,将它放在spider目录下的爬虫文件的类中:
然后,随机抽取User-Agent并添加到headers中,这段代码应放在页面请求方法中:
最后通过生成器生成访问请求:
从而就可实现使用随机的User-Agent规避反爬虫机制。
解决方法:通过尝试发现百度股票(http://gupiao.baidu.com)反爬机制是检测User-Agent,因此这里可以通过使用随机User-Agent来进行爬取。
首先,这是网上找来的常用User-Agent列表,将它放在spider目录下的爬虫文件的类中:
user_agent_list = [\ "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1"\ "Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",\ "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6",\ "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6",\ "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1",\ "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5",\ "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5",\ "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",\ "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",\ "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",\ "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",\ "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",\ "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",\ "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",\ "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",\ "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3",\ "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24",\ "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24" ]
然后,随机抽取User-Agent并添加到headers中,这段代码应放在页面请求方法中:
ua = random.choice(self.user_agent_list)#随机抽取User-Agent headers = { 'Accept-Encoding':'gzip, deflate, sdch, br', 'Accept-Language':'zh-CN,zh;q=0.8', 'Connection':'keep-alive', 'Referer':'https://gupiao.baidu.com/', 'User-Agent':ua }#构造请求头
最后通过生成器生成访问请求:
yield scrapy.Request(url,callback=self.parse,headers=headers)
从而就可实现使用随机的User-Agent规避反爬虫机制。
相关文章推荐
- scrapy 爬豆瓣返回403错误的解决方法
- 百度留言板 和 flash 冲突的 解决方法
- tomcat 403错误简单解决方法
- django在提交表单时403错误解决方法
- 百度索引量与网站降权的基本解决方法
- 空间搬家后,因上级目录权限导致403错误解决方法
- 百度、GOOGLE收录减少、拔毛的解决方法
- 关于百度富文本编辑器ueditor的.NET版本地图片上传提示uploader类同时存在于两个dll中的解决方法
- git 提交(push)403错误解决方法
- Asp.Net MVC部暑托管服务器iis7提示403错误解决方法
- 关于百度富文本编辑器ueditor的.NET版本地图片上传提示uploader类同时存在于两个dll中的解决方法
- 百度不更新网站快照与解决方法
- 百度自定义搜索框 乱码问题的解决方法
- 引用百度popup.js页面无响应的解决方法
- Http 403错误重现实验及解决方法
- 无法在web服务器上启动调试,web服务器配置不正确的解决方法————转载在百度
- 百度只收录首页不收录内页的原因及解决方法
- .访问网站403错误 Forbidden解决方法[这个是我贴的别人的]
- SharePoint 2010 使用元数据报403错误解决方法
- 简单介绍下phpmyadmin 403错误的解决方法