Python爬虫实践(三)设置Headers
2016-06-20 14:44
1021 查看
例子:以登录知乎为例
以上程序运行之后无法登录知乎,错误如下:
出现urllib2.HTTPError: HTTP Error 403: Forbidden错误是由于网站禁止爬虫,可以在请求加上头信息,伪装成浏览器访问.
在登录之后的知乎首页按F12->network,点击第一个请求,查看headers,可看到
import urllib2 import urllib values={"username":"XXXX@qq.com","password":"XXXX"} data=urllib.urlencode(values) url= "https://www.zhihu.com/#signin" request=urllib2.Request(url,data) response=urllib2.urlopen(request) print response.read()
以上程序运行之后无法登录知乎,错误如下:
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) HTTPError: HTTP Error 403: Forbidden
出现urllib2.HTTPError: HTTP Error 403: Forbidden错误是由于网站禁止爬虫,可以在请求加上头信息,伪装成浏览器访问.
在登录之后的知乎首页按F12->network,点击第一个请求,查看headers,可看到
General、
Response Headers、
Request Headers三个分类,有
Request URL: https://www.zhihu.com/[/code]Request Method:GETUser-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36
等等参数。
其中,agent就是请求的身份,如果没有写入请求身份,那么服务器不一定会响应,所以可以在headers中设置agent,import urllib2 import urllib values={"username":"xxxx","password":"xxxxx"} data=urllib.urlencode(values) url= "https://www.zhihu.com/#signin" user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64)" referer='http://www.zhihu.com/articles' headers={"User-Agent":user_agent,'Referer':referer} request=urllib2.Request(url,data,headers) response=urllib2.urlopen(request) print response.read()
好吧,知乎好像不行啊,好像有什么反爬虫机制什么的。
算了 降低难度,直接不登录扒一扒自己的博客看看:import urllib2 import urllib url= "http://blog.csdn.net/horseinch" user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36" headers={"User-Agent":user_agent} request=urllib2.Request(url,headers=headers) response=urllib2.urlopen(request) print response.read()
运行正常(不加header运行失败)。
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- 爬虫笔记
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- 初心大陆-----python宝典 第三章