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高效编程技巧
Jan 07 Python
详解Python的Django框架中Manager方法的使用
Jul 21 Python
python变量不能以数字打头详解
Jul 06 Python
浅谈Python 字符串格式化输出(format/printf)
Jul 21 Python
详解python多线程、锁、event事件机制的简单使用
Apr 27 Python
详解Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果
May 07 Python
Pyqt5实现英文学习词典
Jun 24 Python
详解如何减少python内存的消耗
Aug 09 Python
python求一个字符串的所有排列的实现方法
Feb 04 Python
Python的PIL库中getpixel方法的使用
Apr 09 Python
使用python求斐波那契数列中第n个数的值示例代码
Jul 26 Python
Python pymysql模块安装并操作过程解析
Oct 13 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
Codeigniter检测表单post数据的方法
2015/03/21 PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
2017/03/23 PHP
Yii2框架自定义验证规则操作示例
2019/02/08 PHP
PHP7 其他语言层面的修改
2021/03/09 PHP
Mootools 1.2教程 输入过滤第一部分(数字)
2009/09/15 Javascript
JQuery自适应IFrame高度(支持嵌套 兼容IE,ff,safafi,chrome)
2011/03/28 Javascript
深入理解JavaScript系列(35):设计模式之迭代器模式详解
2015/03/03 Javascript
JavaScript中使用指数方法Math.exp()的简介
2015/06/15 Javascript
JavaScript判断是否是微信浏览器
2016/06/13 Javascript
Bootstrap Metronic完全响应式管理模板学习笔记
2016/07/08 Javascript
原生js实现查询天气小应用
2016/12/09 Javascript
Vue.js系列之vue-router(上)(3)
2017/01/03 Javascript
详解JS中的快速排序与冒泡
2017/01/10 Javascript
Vue-resource实现ajax请求和跨域请求示例
2017/02/23 Javascript
Vuex之理解Getters的用法实例
2017/04/19 Javascript
基于代数方程库Algebra.js解二元一次方程功能示例
2017/06/09 Javascript
解决vue接口数据赋值给data没有反应的问题
2018/08/27 Javascript
Vue响应式原理Observer、Dep、Watcher理解
2019/06/06 Javascript
关于Layui Table隐藏列问题
2019/09/16 Javascript
解决layui动态加载复选框无法选中的问题
2019/09/20 Javascript
5个你不知道的JavaScript字符串处理库(小结)
2020/06/01 Javascript
[01:45]2014DOTA2 TI预选赛预选赛 大神专访第二弹!
2014/05/20 DOTA
Django ModelForm组件使用方法详解
2019/07/23 Python
基于Django框架的权限组件rbac实例讲解
2019/08/31 Python
django xadmin 管理器常用显示设置方式
2020/03/11 Python
Python wordcloud库安装方法总结
2020/12/31 Python
python实现b站直播自动发送弹幕功能
2021/02/20 Python
video下autoplay属性无效的解决方法(添加muted属性)
2020/05/19 HTML / CSS
2014年五一促销活动方案
2014/03/09 职场文书
2014年中秋寄语
2014/08/11 职场文书
公司法人授权委托书范本
2014/09/12 职场文书
婚礼新人答谢词
2015/01/04 职场文书
怀孕辞职信怎么写
2015/02/28 职场文书
课文《燕子》教学反思
2016/02/17 职场文书
初中政治教师教学反思
2016/02/23 职场文书
zabbix 代理服务器的部署与 zabbix-snmp 监控问题
2022/07/15 Servers