其实有可能一个也不需要,有可能都需要,这取决于你访问的网页的服务器需不需要你提供这些信息 最常用到的两个信息是:User-Agent和Referer User-Agent:用户代理。是一种向访问网站提供你所使用的浏览器类型、操作系统及版本、CPU 类型、浏览器渲染引擎、浏览器语言、浏览器插件等信息的标识。UA字符串在每次浏览器 HTTP 请求时发送到服务器 Referer:HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理 其他的信息有可能用不到,但是用到的时候在网页中按之前的方法找到并一个一个的加上去就可以了 那么,我们应该怎样在怎么在爬虫代码中伪装header呢? 这需要两个步骤,定义、发送: 1. 定义header,即将header传入 2. 将header发送出去 1. 定义header,即将header传入 我们知道,header里面有很多的内容,比如User-Agent、Referer 等等,每个内容都有自己的值,我们在定义header的时候,要将内容和值一一对应的放入 等等,"将内容和值一一对应",这中数据类型不就是字典吗,好,那我们就创建一个字典 headers = {'User-agent':'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv额........ 这个好像有点丑啊,换种写法 user_agent = 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:40.0) GeckOK,现在来考虑怎么将这个header发送出去 注:这里的user_agent 是我的浏览器的数据,你们在编写代码的时候要按照前面说的方法将你自己使用的浏览器的user_agent填下去 2. 将header发送出去 这需要使用到urllib2.Request() 函数 在前面"最简单的爬虫程序"中遇到 Request() 函数,当时只是用来规范代码的书写,但是Request() 函数的功能不止如此,现在再一次用到,我们就来深入的学习 urllib2.Request()的功能是构造一个请求信息,返回的req就是一个构造好的请求所以 ,伪装header的代码应该这样写 user_agent = 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:40.0) Geck好了,我们在原来代码的基础上加入伪装header的部分并修改 |
|