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正则分组的应用
Nov 10 Python
Python自定义函数的创建、调用和函数的参数详解
Mar 11 Python
Python基于pygame实现的弹力球效果(附源码)
Nov 11 Python
Python中装饰器兼容加括号和不加括号的写法详解
Jul 05 Python
基于python元祖与字典与集合的粗浅认识
Aug 23 Python
python自动化脚本安装指定版本python环境详解
Sep 14 Python
python使用Plotly绘图工具绘制气泡图
Apr 01 Python
Django在pycharm下修改默认启动端口的方法
Jul 26 Python
python实现的config文件读写功能示例
Sep 24 Python
使用python模拟高斯分布例子
Dec 09 Python
解决tensorflow读取本地MNITS_data失败的原因
Jun 22 Python
python3代码输出嵌套式对象实例详解
Dec 03 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
JSON在PHP中的应用介绍
2012/09/08 PHP
以文件形式缓存php变量的方法
2015/06/26 PHP
注意!PHP 7中不要做的10件事
2016/09/18 PHP
laravel实现前后台路由分离的方法
2019/10/13 PHP
firefox火狐浏览器与与ie兼容的2个问题总结
2010/07/20 Javascript
jQuery EasyUI API 中文文档 - ComboBox组合框
2011/10/07 Javascript
js实现运动logo图片效果及运动元素对象sportBox使用方法
2012/12/25 Javascript
DWZ table的原生分页浅谈
2013/03/01 Javascript
JQuery之focus函数使用介绍
2013/08/20 Javascript
使用js dom和jquery分别实现简单增删改
2014/09/11 Javascript
触屏中的JavaScript事件分析
2015/02/06 Javascript
javascript数组排序汇总
2015/07/07 Javascript
js实现仿MSN带关闭功能的右下角弹窗代码
2015/09/04 Javascript
详解JavaScript for循环中发送AJAX请求问题
2020/06/23 Javascript
Vue.js每天必学之计算属性computed与$watch
2016/09/05 Javascript
jQuery Dialog 取消右上角删除按钮事件
2016/09/07 Javascript
微信小程序实现缓存根据不同的id来进行设置和读取缓存
2017/06/12 Javascript
JavaScript之创意时钟项目(实例讲解)
2017/10/23 Javascript
基于jQuery实现定位导航位置效果
2017/11/15 jQuery
javascript实现前端input密码输入强度验证
2020/06/24 Javascript
[07:08]2014DOTA2西雅图国际邀请赛 小组赛7月11日TOPPLAY
2014/07/11 DOTA
[11:12]2018DOTA2国际邀请赛寻真——绿色长城OpTic
2018/08/10 DOTA
Python 字符串操作方法大全
2014/03/11 Python
简单介绍利用TK在Python下进行GUI编程的教程
2015/04/13 Python
tensorflow实现测试时读取任意指定的check point的网络参数
2020/01/21 Python
HTML5的语法变化介绍
2013/08/13 HTML / CSS
关于老式浏览器兼容HTML5和CSS3的问题
2016/06/01 HTML / CSS
全球销量第一生发产品:Viviscal
2017/12/21 全球购物
zooplus波兰:在线宠物店
2019/07/21 全球购物
Zooplus罗马尼亚:宠物食品和配件
2019/11/02 全球购物
机械专业毕业生自荐信
2013/11/02 职场文书
银行财务部实习生的自我鉴定
2013/11/27 职场文书
群众路线教育实践活动的心得体会
2014/09/03 职场文书
学校后勤工作总结2015
2015/05/15 职场文书
使用JS实现简易计算器
2021/06/14 Javascript
Java用自带的Image IO给图片添加水印
2021/06/15 Java/Android