这篇文章主要介绍Python爬虫中Headers的设置方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
成都网站建设哪家好,找成都创新互联公司!专注于网页设计、成都网站建设、微信开发、成都小程序开发、集团成都企业网站建设等服务项目。核心团队均拥有互联网行业多年经验,服务众多知名企业客户;涵盖的客户类型包括:成都砂岩浮雕等众多领域,积累了大量丰富的经验,同时也获得了客户的一致称赞!
首先,打开我们的浏览器,调试浏览器 F12,我用的是 Chrome,打开网络监听,示意如下,比如知乎,点登录之后,我们会发现登陆之后界面都变化了,出现一个新的界面,实质上这个页面包含了许许多多的内容,这些内容也不是一次性就加载完成的,实质上是执行了好多次请求,一般是首先请求 HTML 文件,然后加载 JS,CSS 等等,经过多次请求之后,网页的骨架和肌肉全了,整个网页的效果也就出来了。
拆分这些请求,我们只看一第一个请求,你可以看到,有个 Request URL,还有headers,下面便是response,图片显示得不全,小伙伴们可以亲身实验一下。那么这个头中包含了许许多多是信息,有文件编码啦,压缩方式啦,请求的agent啦等等。 其中,agent就是请求的身份,如果没有写入请求身份,那么服务器不一定会响应,所以可以在headers中设置agent,例如下面的例子,这个例子只是说明了怎样设置的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 传入 Request 参数里,这样就能应付防盗链了。 另外 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设置错误会导致服务器拒绝服务
其他的有必要的可以审查浏览器的 headers 内容,在构建时写入同样的数据即可。
以上是Python爬虫中Headers的设置方法的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!