Python3 伪装浏览器的方法示例


Posted in Python onNovember 23, 2017

一、伪装浏览器

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

具体实现:自定义网页请求报头。

二、使用Fiddler查看请求和响应报头

打开工具Fiddler,然后再浏览器访问“https://www.douban.com/”,在Fiddler左侧访问记录中,找到“200 HTTPS www.douban.com”这一条,点击查看其对应的请求和响应报头具体内容:

Python3 伪装浏览器的方法示例

三、访问豆瓣

我们自定义请求报头与上图Request Headers相同内容:

''''' 
伪装浏览器 
 
对于一些需要登录的网站,如果不是从浏览器发出的请求,则得不到响应。 
所以,我们需要将爬虫程序发出的请求伪装成浏览器正规军。 
具体实现:自定义网页请求报头。 
''' 
 
#实例二:依然爬取豆瓣,采用伪装浏览器的方式 
 
import urllib.request 
 
#定义保存函数 
def saveFile(data): 
 path = "E:\\projects\\Spider\\02_douban.out" 
 f = open(path,'wb') 
 f.write(data) 
 f.close() 
 
#网址 
url = "https://www.douban.com/" 
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) ' 
      'Chrome/51.0.2704.63 Safari/537.36'} 
req = urllib.request.Request(url=url,headers=headers) 
 
res = urllib.request.urlopen(req) 
 
data = res.read() 
 
#也可以把爬取的内容保存到文件中 
saveFile(data) 
 
data = data.decode('utf-8') 
#打印抓取的内容 
print(data) 
 
 
#打印爬取网页的各类信息 
print(type(res)) 
print(res.geturl()) 
print(res.info()) 
print(res.getcode())

四、输出的结果结果(截取部分)

Python3 伪装浏览器的方法示例

结果文件内容

Python3 伪装浏览器的方法示例

GitHub代码链接

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python标准库os.path包、glob包使用实例
Nov 25 Python
Python中使用摄像头实现简单的延时摄影技术
Mar 27 Python
在Python的gevent框架下执行异步的Solr查询的教程
Apr 16 Python
Python的re模块正则表达式操作
May 25 Python
python安装教程 Pycharm安装详细教程
May 02 Python
python计算auc指标实例
Jul 13 Python
Python判断字符串是否为字母或者数字(浮点数)的多种方法
Aug 03 Python
django页面跳转问题及注意事项
Jul 18 Python
彻底搞懂 python 中文乱码问题(深入分析)
Feb 28 Python
解决python pandas读取excel中多个不同sheet表格存在的问题
Jul 14 Python
解决阿里云邮件发送不能使用25端口问题
Aug 07 Python
python 实现压缩和解压缩的示例
Sep 22 Python
python学习笔记之列表(list)与元组(tuple)详解
Nov 23 #Python
python数字图像处理之高级滤波代码详解
Nov 23 #Python
Python3网络爬虫之使用User Agent和代理IP隐藏身份
Nov 23 #Python
python网络爬虫之如何伪装逃过反爬虫程序的方法
Nov 23 #Python
Python实现的基数排序算法原理与用法实例分析
Nov 23 #Python
Scrapy抓取京东商品、豆瓣电影及代码分享
Nov 23 #Python
python简单图片操作:打开\显示\保存图像方法介绍
Nov 23 #Python
You might like
如何使用动态共享对象的模式来安装PHP
2006/10/09 PHP
一个可查询所有表的“通用”查询分页类
2006/10/09 PHP
PHP模板引擎Smarty中的保留变量用法分析
2016/04/11 PHP
Yii2增加验证码步骤详解
2016/04/25 PHP
IE DOM实现存在的部分问题及解决方法
2009/07/25 Javascript
js 页面传参数时 参数值含特殊字符的问题
2009/12/13 Javascript
javascript 二维数组的实现与应用
2010/03/16 Javascript
浅谈javascript六种数据类型以及特殊注意点
2013/12/20 Javascript
jquery禁用右键示例
2014/04/28 Javascript
基于豆瓣API+Angular开发的web App
2015/01/02 Javascript
使用jquery组件qrcode生成二维码及应用指南
2015/02/22 Javascript
原生JS和JQuery动态添加、删除表格行的方法
2015/05/28 Javascript
Javascript将数值转换为金额格式(分隔千分位和自动增加小数点)
2016/06/22 Javascript
JavaScript 动态三角函数实例详解
2017/01/08 Javascript
AngularJS select设置默认值的实现方法
2017/08/25 Javascript
Thinkjs3新手入门之添加一个新的页面
2017/12/06 Javascript
微信小程序项目实践之九宫格实现及item跳转功能
2018/07/19 Javascript
js实现多个倒计时并行 js拼团倒计时
2019/02/25 Javascript
JS实现计算小于非负数n的素数的数量算法示例
2019/02/26 Javascript
vue简单练习 桌面时钟的实现代码实例
2019/09/19 Javascript
在Python下使用Txt2Html实现网页过滤代理的教程
2015/04/11 Python
python中尾递归用法实例详解
2015/04/28 Python
Python操作Oracle数据库的简单方法和封装类实例
2018/05/07 Python
python实现最小二乘法线性拟合
2019/07/19 Python
python爬虫解决验证码的思路及示例
2019/08/01 Python
python中元组的用法整理
2020/06/15 Python
使用Keras画神经网络准确性图教程
2020/06/15 Python
结合CSS3的布局新特征谈谈常见布局方法
2016/01/22 HTML / CSS
西班牙土拨鼠床垫公司,感觉在云端:Marmota
2019/03/18 全球购物
火山动力Java笔试题
2014/06/26 面试题
大学新生欢迎词
2014/01/10 职场文书
消防安全标语
2014/06/07 职场文书
县政协领导班子群众路线教育实践活动四风问题整改方案
2014/10/26 职场文书
开票证明
2015/06/23 职场文书
2016年秋季开学典礼新闻稿
2015/11/25 职场文书
想创业成功,需要掌握这些要点
2019/12/06 职场文书