Python爬虫设置Headers
2017-04-14 11:38
387 查看
Python设置Headers
import urllib import urllib2 url = 'http://www.server.com/login' user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)' values = {'username' : 'cqc', 'password' : 'XXXX' } headers = { 'User-Agent' : user_agent } data = urllib.urlencode(values) request = urllib2.Request(url, data, headers) response = urllib2.urlopen(request) page = response.read()
这样,我们设置了一个headers,在构建request时传入,在请求时,就加入了headers传送,服务器若识别了是浏览器发来的请求,就会得到响应。
另外,我们还有对付”反盗链”的方式,对付防盗链,服务器会识别headers中的referer是不是它自己,如果不是,有的服务器不会响应,所以我们还可以在headers中加入referer
例如我们可以构建下面的headers
headers = { 'User-Agent': 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)', 'Referer': 'http://www.zhihu.com/articles' }
另外headers的一些属性,下面的需要特别注意一下:
User-Agent : 有些服务器或 Proxy 会通过该值来判断是否是浏览器发出的请求
Content-Type : 在使用 REST 接口时,服务器会检查该值,用来确定 HTTP Body 中的内容该怎样解析。
application/xml : 在 XML RPC,如 RESTful/SOAP 调用时使用
application/json : 在 JSON RPC 调用时使用
application/x-www-form-urlencoded : 浏览器提交 Web 表单时使用
在使用服务器提供的 RESTful 或 SOAP 服务时, Content-Type 设置错误会导致服务器拒绝服务
异常抛出
import urllib import urllib2 url = 'http://www.server.com/login' user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)' values = {'username' : 'cqc', 'password' : 'XXXX' } headers = { 'User-Agent' : user_agent } data = urllib.urlencode(values) request = urllib2.Request(url, data, headers) try: response = urllib2.urlopen(request) except urllib2.HTTPError, e: print e.code print e.reason page = response.read()
相关文章推荐
- python-网络爬虫初学二:headers的设置和一些高级特性
- python爬虫headers设置后无效的解决方法
- Python爬虫(入门+进阶)学习笔记 1-6 浏览器抓包及headers设置(案例一:爬取知乎)
- Python爬虫(二)——urllib库,Post与Get数据传送区别,设置Headers,urlopen方法,简单爬虫
- Python爬虫实践(三)设置Headers
- python爬虫设置请求消息头(headers)
- python-网络爬虫初学二:headers的设置和一些高级特性
- Python爬虫设置动态代理(在线获取)
- Python3 大型网络爬虫实战 — 给 scrapy 爬虫项目设置为防反爬
- python爬虫学习(一)通过urllib2模块获取html,设置用户代理
- Python爬虫设置代理IP爬取知乎图片
- 妹子图爬虫,最重要的是请求头headers设置'Referer':'http://www.mzitu.com/'
- python3 [爬虫入门实战]爬虫之selenium 安装设置与初步使用
- Python爬虫实践(四):一些不常用设置
- python 在爬虫中timeout设置超时有什么作用
- Python爬虫之超时设置
- python爬虫-抓取acg12动漫壁纸排行设置为桌面壁纸
- python爬虫基础之request设置问题
- python爬虫设置cookie模拟登录微博方法
- Python爬虫--timeout设置--防止访问时间过长造成假死