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对小数进行除法运算的正确方法示例
Aug 25 Python
Python多线程编程(一):threading模块综述
Apr 05 Python
Python中遍历字典过程中更改元素导致异常的解决方法
May 12 Python
python如何查看系统网络流量的信息
Sep 12 Python
Python自动发邮件脚本
Mar 31 Python
python使用sqlite3时游标使用方法
Mar 13 Python
Python使用numpy模块创建数组操作示例
Jun 20 Python
python调用webservice接口的实现
Jul 12 Python
python 哈希表实现简单python字典代码实例
Sep 27 Python
python对输出的奇数偶数排序实例代码
Dec 04 Python
Jupyter notebook 不自动弹出网页的解决方案
May 21 Python
教你怎么用Python操作MySql数据库
May 31 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动态生成虚拟现实VRML网页
2006/10/09 PHP
php explode函数实例代码
2012/02/27 PHP
PHP date函数常用时间处理方法
2015/05/11 PHP
ThinkPHP连接Oracle数据库
2016/04/22 PHP
PHP目录与文件操作技巧总结(创建,删除,遍历,读写,修改等)
2016/09/11 PHP
php注册和登录界面的实现案例(推荐)
2016/10/24 PHP
Laravel框架路由设置与使用示例
2018/06/12 PHP
文字幻灯片
2006/06/26 Javascript
[HTML/CSS/Javascript]WWTJS
2007/09/25 Javascript
JavaScript 动态将数字金额转化为中文大写金额
2009/05/14 Javascript
javascript中的注释使用与注意事项小结
2011/09/20 Javascript
nodejs教程之制作一个简单的文章发布系统
2014/11/21 NodeJs
JS表的模拟方法
2015/02/05 Javascript
js表单登陆验证示例
2016/10/19 Javascript
简单的js计算器实现
2016/10/26 Javascript
基于Particles.js制作超炫粒子动态背景效果(仿知乎)
2017/09/13 Javascript
vue实现自定义多选与单选的答题功能
2018/07/05 Javascript
Vue页面刷新记住页面状态的实现
2019/12/27 Javascript
Node中对非阻塞I/O、事件循环的知识点总结
2020/01/05 Javascript
详解vue-router的导航钩子(导航守卫)
2020/11/02 Javascript
如何在JavaScript中使用localStorage详情
2021/02/04 Javascript
[04:39]显微镜下的DOTA2第十三期—Pis卡尔个人秀
2014/04/04 DOTA
[01:14]英雄,所敬略同——2018完美盛典宣传视频4K
2018/12/05 DOTA
Python多线程编程简单介绍
2015/04/13 Python
Python实现身份证号码解析
2015/09/01 Python
Python 循环语句之 while,for语句详解
2018/04/23 Python
用Python爬取QQ音乐评论并制成词云图的实例
2019/08/24 Python
Pycharm配置PyQt5环境的教程
2020/04/02 Python
Html5 canvas实现粒子时钟的示例代码
2018/09/06 HTML / CSS
canvas 基础之图像处理的使用
2020/04/10 HTML / CSS
HTML5 drag和drop具体使用详解
2021/01/18 HTML / CSS
大专学生推荐信范文
2013/11/19 职场文书
试用期自我鉴定范文
2014/03/20 职场文书
安全生产责任书范本
2014/04/15 职场文书
拆迁委托协议书
2014/09/15 职场文书
解决SpringBoot文件上传临时目录找不到的问题
2021/07/01 Java/Android