博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python爬虫设置Headers
阅读量:5142 次
发布时间:2019-06-13

本文共 1522 字,大约阅读时间需要 5 分钟。

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的一些属性,下面的需要特别注意一下:

  1. User-Agent : 有些服务器或 Proxy 会通过该值来判断是否是浏览器发出的请求
  2. Content-Type : 在使用 REST 接口时,服务器会检查该值,用来确定 HTTP Body 中的内容该怎样解析。
  3. application/xml : 在 XML RPC,如 RESTful/SOAP 调用时使用
  4. application/json : 在 JSON RPC 调用时使用
  5. application/x-www-form-urlencoded : 浏览器提交 Web 表单时使用
  6. 在使用服务器提供的 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()

  

转载于:https://www.cnblogs.com/zeze/p/6708018.html

你可能感兴趣的文章
Linux-以指定用户运行redis
查看>>
Linux-socket的close和shutdown区别及应用场景
查看>>
初探Oracle全栈虚拟机---GraalVM
查看>>
移动端的点击滚动逻辑实现。
查看>>
xpath
查看>>
parted分区
查看>>
抛出错误
查看>>
Can't play local SWF file in Media Player
查看>>
图片标签img
查看>>
JavaScript语言中文参考手册.chm
查看>>
表哥的Access入门++以Excel视角快速学习数据库知识pdf
查看>>
day29 jq
查看>>
TC 配置插件
查看>>
关于异步reset
查看>>
索引优先队列的工作原理与简易实现
查看>>
并发编程简介
查看>>
C++两水杯量出所需水量的小算法
查看>>
基于K-近邻分类算法的手写识别系统
查看>>
使用easyui的form提交表单,在IE下出现类似附件下载时提示是否保存的现象
查看>>
PC站跳转M站的方法
查看>>