python 爬虫 伪装浏览器_python爬虫之伪装浏览器

问题描述:File "D:\python\Lib\httplib.py", line 417, in _read_status

raise BadStatusLine(line)

首先我们得对这两行代码并对此进行解释

user_agent='Mozilla/4.0(compatible;MSIE 5.5; Windows NT)'

headers ={ 'User-Agent':user_agent}

User-Agent是http协议中的一部分,属于头域的组成部分

这是一种向范文网站提供你所使用的浏览器类型,操作系统,浏览器内核等信息的标识

通过这个标识,用户所访问的网站可以显示不同的排版从而为用户提供更好的体验或者

进行信息统计

IE版本Mozilla/4.0(compatible;MSIE8.0;Windows NT 6.0)

版本号是MSIE之后的数字,比如MSIE 8.0表示ie8,而Window NT 6.1对应操作系统是window7

Windows NT 6.0 对应操作系统 windows vista

Windows NT 5.2 对应操作系统 windows 2003

Windows NT 5.1 对应操作系统 windows xp

Windows NT 5.0 对应操作系统 windows 2000

UNIX/LINUX 为X11代替

Firefox版本Mozilla/5.0(Windows;U;Windows NT 5.2)Gecko/20088070208 Firefox/3.0.1

其中N:表示无安全加密 I表示弱安全加密 U:表示强安全加密,上面的u表示加密等级

Chrome版本Mozilla/5.0(Windows;U;Windows NT 5.2)AppleWebKit/525.13(KHTML,like Gecko)

其中版本号是chrome后的数字

[USER_AGENT] => Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; 360SE)

注意以上的User-Agent的作用就是伪装成浏览器修改http包中的header来实现,

此条代码的试用环境是网站反感爬虫的到访

而这条语句本身没有问题,正如用User_agent来伪装浏览器寻求访问,在将headers设置成我们伪装的地址

此时我们又需要知道urllib和urllib2模块的区别和用法

区别:1.在python中urllib和urllib2不可互相代替

2.urllib2是urllib的增强,但是urllib2有urllib没有的函数

3.urllib2可以用来设置request参数,来修改header的头,更改user agent

4.urllib支持设置编码的函数,urllib.urlencode在模拟登陆的时候,经常要编码过后才能登陆

5.urllib2和urllib一起搭配使用.

关于urllib2的介绍

urllib2提供基础函数urlopen,通过向指定的url发出请求来获取数据,最简单的形式就是

import urllib2

response=urllib2.urlopen('网页')

html=response.read()

这个过程就是我们平时刷网页的代码形式,基于请求响应模型

response=urllib2.urlopen('网页')

这个过程实际上是有两个步骤:

我们指定一个域名并发送请求

request=urllib2.request('网页')

服务器响应客户端的请求

response=urllib2.urlopen(requset)

谔谔扯远了,开头的这个问题的原因是在request请求语句中并没有将headers添加进去,无法构成有效请求,导致请求列表不存在,嗯我是这样理解的

request = urllib2.Request(url,headers=headers)这样了之后这个错误就消失了,附上图片

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值