问题描述: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)这样了之后这个错误就消失了,附上图片

转载于:https://www.cnblogs.com/bebox/p/7148019.html

python爬虫之伪装浏览器相关推荐

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

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

  2. python web flask伪装浏览器接口,爬虫小程序

    爬取百度搜索引擎,自制专属浏览器 flask框架的代码 运行之后,可在自己建立的网站上的搜索框搜索任何内容,程序将会跳转到百度的服务器进行搜索,有能力的同学还可以通过replace等代码进行网页伪装, ...

  3. 适合python爬虫使用的浏览器_python爬虫:常用浏览器的useragent

    1,为什么需要修改UserAgent 在写python网络爬虫程序的时候,经常需要修改UserAgent,有很多原因,罗列几个如下: 不同Agent下看到的内容不一样,比如,京东网站上的手机版网页和p ...

  4. 适合python爬虫使用的浏览器_python爬虫:使用Selenium模拟浏览器

    一.首先准备环境 1.window10环境下 2.Selenium最新版本 pip install Selenium 3.下载浏览器驱动 下载解压后,将所在的目录添加系统的环境变量中.当然你也可以将下 ...

  5. python 爬虫 selenium 无头浏览器设置

    使用selenium 爬取数据,不弹出浏览器,后台运行,需要代码设置下无头参数配置 #浏览器在后台运行,不弹出页面 from selenium.webdriver import Chrome from ...

  6. python伪装浏览器https_Python3 伪装浏览器的方法示例

    python 的 Python3 伪装浏览器的方法示例 一.伪装浏览器 对于一些需要登录的网站,如果不是从浏览器发出的请求,则得不到响应.所以,我们需要将爬虫程序发出的请求伪装成浏览器正规军. 具体实 ...

  7. 简述python爬虫_python爬虫入门篇了解

    1. 爬虫分类: 1.1 通用爬虫:例如搜索引擎:无差别的收集数据:提取存储关键字:构建索引库:给用户提供搜索接口. 1.2 聚焦爬虫:有针对性的编写特定领域数据的爬取程序. 2. Robots协议: ...

  8. Python爬虫 爬取豆瓣电影TOP250

    Python爬虫 爬取豆瓣电影TOP250 最近在b站上学习了一下python的爬虫,实践爬取豆瓣的电影top250,现在对这两天的学习进行一下总结 主要分为三步: 爬取豆瓣top250的网页,并通过 ...

  9. python制作浏览器 脚本之家_基于Python打造账号共享浏览器功能

    本篇文章介绍的内容会涉及到以下知识: PyQt5的使用; Selenium的使用; 代理服务器的架设和使用: 一.账号限制之痛 在如今的互联网中,免费的信息和资源占据了很大一部分,各类互联网应用提供了 ...

最新文章

  1. 值得收藏的45个Python优质资源(附链接)
  2. thymeleaf 模板语言简介
  3. ios. GCD 倒计时时间
  4. conv2d 公式_Pytorch 从0开始学(6)——Conv2d 详解
  5. python怎么命名未知数_Python4要来了?快来看看Python之父怎么说
  6. bash配置文件的修改
  7. android 网络gif_Android SurfaceView实现GIF动画架包,播放GIF动画
  8. iview 自定义时间选择器组件_视图更新科技发布View UI组件库(即 iView 4.0),超过50项更新...
  9. ssl教程易语言代码
  10. ADS史密斯圆阻抗匹配
  11. 小丸工具箱压制字幕注意
  12. MongoDB studio3T 破解
  13. JPG如何免费压缩大小并且保证清晰度
  14. 关于word中插入的mathtype公式变形问题的解决方案
  15. TX2 4.6.1 全部软件环境刷机要点
  16. 掏库存分享——抖音平台上可以用来当背景音乐的歌曲
  17. Youtube是什么平台?有什么用?能同时登录吗?
  18. 有限差分——图像求偏导
  19. Linux mmap
  20. Oracle报ORA-01722错误的排查经验

热门文章

  1. L2-005 集合相似度(STL+暴力)
  2. android反编译工具mercury_JAVA反编译工具集锦
  3. java国际化软件_JavaWeb开发——软件国际化(动态元素国际化)
  4. 极简主义︱利用apple机器学习平台Turicreate实现图像相似性检索(二)
  5. Eviews 9.0新版本新功能——预测(Auto-ARIMA预测、VAR预测)
  6. [机器学习]推荐系统介绍
  7. Struts 常用标签的使用
  8. Android项目实战登录注册
  9. C++中main函数的返回类型必须是int
  10. linux令普通用户拥有root权限