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 03 Python
Python IDE PyCharm的基本快捷键和配置简介
Nov 04 Python
如何在Python中编写并发程序
Feb 27 Python
Numpy数组转置的两种实现方法
Apr 17 Python
浅谈python str.format与制表符\t关于中文对齐的细节问题
Jan 14 Python
Python生成验证码、计算具体日期是一年中的第几天实例代码详解
Oct 16 Python
Python 实现平台类游戏添加跳跃功能
Mar 27 Python
Python使用20行代码实现微信聊天机器人
Jun 05 Python
Django中Aggregation聚合的基本使用方法
Jul 09 Python
Python必须了解的35个关键词
Jul 16 Python
python在linux环境下安装skimage的示例代码
Oct 14 Python
Python线程池与GIL全局锁实现抽奖小案例
Apr 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
Javascript与PHP验证用户输入URL地址是否正确
2014/10/09 PHP
php格式化金额函数分享
2015/02/02 PHP
总结PHP删除字符串最后一个字符的三种方法
2016/08/30 PHP
tp5(thinkPHP5)操作mongoDB数据库的方法
2018/01/20 PHP
JS分割字符串并放入数组的函数
2011/07/04 Javascript
javascript中JSON对象与JSON字符串相互转换实例
2015/07/11 Javascript
jquery遍历函数siblings()用法实例
2015/12/24 Javascript
js 求时间差的实现代码
2016/04/26 Javascript
jQuery遍历节点树方法分析
2016/09/08 Javascript
浅谈jquery采用attr修改form表单enctype不起作用的问题
2016/11/25 Javascript
angularjs实现多张图片上传并预览功能
2017/02/24 Javascript
Extjs表单输入框异步校验的插件实现方法
2017/03/20 Javascript
js使用highlight.js高亮你的代码
2017/08/18 Javascript
JavaScript屏蔽Backspace键的实现代码
2017/11/02 Javascript
原生JS实现简单的无缝自动轮播效果
2018/09/26 Javascript
小白教程|一小时上手最流行的前端框架vue(推荐)
2019/04/10 Javascript
Vue事件处理原理及过程详解
2020/03/11 Javascript
Python实现列表删除重复元素的三种常用方法分析
2017/11/24 Python
mac安装scrapy并创建项目的实例讲解
2018/06/13 Python
python3爬虫之设计签名小程序
2018/06/19 Python
Python对ElasticSearch获取数据及操作
2019/04/24 Python
详解python中的线程与线程池
2019/05/10 Python
解决python中的幂函数、指数函数问题
2019/11/25 Python
pyinstaller还原python代码过程图解
2020/01/08 Python
Python Selenium安装及环境配置的实现
2020/03/17 Python
virtualenv介绍及简明教程
2020/06/23 Python
selenium学习教程之定位以及切换frame(iframe)
2021/01/04 Python
HTML5实现移动端弹幕动画效果
2019/08/01 HTML / CSS
HTML5 3D书本翻页动画的实现示例
2019/08/28 HTML / CSS
与C++相比,Java中的数组有什么不同
2014/03/25 面试题
电大物流学生的自我评价
2013/10/25 职场文书
优秀员工年终发言演讲稿
2014/01/01 职场文书
护理专业求职信
2014/06/15 职场文书
中国梦演讲稿3分钟
2014/08/19 职场文书
歌舞青春观后感
2015/06/10 职场文书
Python使用protobuf序列化和反序列化的实现
2021/05/19 Python