Python3爬虫学习之应对网站反爬虫机制的方法分析


Posted in Python onDecember 12, 2018

本文实例讲述了Python3爬虫学习之应对网站反爬虫机制的方法。分享给大家供大家参考,具体如下:

如何应对网站的反爬虫机制

在访问某些网站的时候,网站通常会用判断访问是否带有头文件来鉴别该访问是否为爬虫,用来作为反爬取的一种策略。

例如打开搜狐首页,先来看一下Chrome的头信息(F12打开开发者模式)如下:

Python3爬虫学习之应对网站反爬虫机制的方法分析

如图,访问头信息中显示了浏览器以及系统的信息(headers所含信息众多,具体可自行查询)

Python中urllib中的request模块提供了模拟浏览器访问的功能,代码如下:

from urllib import request
url = 'http://www.baidu.com'
# page = request.Request(url)
# page.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36')
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
page = request.Request(url, headers=headers)
page_info = request.urlopen(page).read().decode('utf-8')
print(page_info)

可以通过add_header(key, value) 或者直接以参数的形式和URL一起请求访问,

urllib.request.Request()
urllib.request.Request(url, data=None, headers={}, origin_req_host=None, unverifiable=False, method=None)

其中headers是一个字典,通过这种方式可以将爬虫模拟成浏览器对网站进行访问。
https://docs.python.org/3/library/urllib.request.html?highlight=request#module-urllib.request

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python正则表达式用法总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python random模块常用方法
Nov 03 Python
总结Python编程中函数的使用要点
Mar 20 Python
Python抓取电影天堂电影信息的代码
Apr 07 Python
Python实现将数据框数据写入mongodb及mysql数据库的方法
Apr 02 Python
在python中实现将一张图片剪切成四份的方法
Dec 05 Python
python打印n位数“水仙花数”(实例代码)
Dec 25 Python
Python-numpy实现灰度图像的分块和合并方式
Jan 09 Python
15行Python代码实现免费发送手机短信推送消息功能
Feb 27 Python
Python实现计算图像RGB均值方式
Jun 04 Python
Django中Q查询及Q()对象 F查询及F()对象用法
Jul 09 Python
Python中zipfile压缩包模块的使用
May 14 Python
Python 数据科学 Matplotlib图库详解
Jul 07 Python
python实现简单多人聊天室
Dec 11 #Python
在python中利用KNN实现对iris进行分类的方法
Dec 11 #Python
python 划分数据集为训练集和测试集的方法
Dec 11 #Python
Python sklearn KFold 生成交叉验证数据集的方法
Dec 11 #Python
想学python 这5本书籍你必看!
Dec 11 #Python
对python中数据集划分函数StratifiedShuffleSplit的使用详解
Dec 11 #Python
Python3爬虫学习入门教程
Dec 11 #Python
You might like
解析PHP将对象转换成数组的方法(兼容多维数组类型)
2013/06/21 PHP
PHP SPL标准库之数据结构堆(SplHeap)简单使用实例
2015/05/12 PHP
用jquery修复在iframe下的页面锚点失效问题
2014/08/22 Javascript
简单方法判断JavaScript对象为null或者属性为空
2014/09/26 Javascript
js获取微信版本号的方法
2015/05/12 Javascript
详解AngularJS中的表格使用
2015/06/16 Javascript
BootStrap点击下拉菜单项后显示一个新的输入框实现代码
2016/05/16 Javascript
sencha ext js 6 快速入门(必看)
2016/06/01 Javascript
微信小程序 less文件编译成wxss文件实现办法
2016/12/05 Javascript
js canvas实现适用于移动端的百分比仪表盘dashboard
2017/07/18 Javascript
微信小程序之选项卡的实现方法
2017/09/29 Javascript
旺旺在线客服代码 旺旺客服代码生成器
2018/01/09 Javascript
vue2中使用sass并配置全局的sass样式变量的方法
2018/09/04 Javascript
JavaScript使用闭包模仿块级作用域操作示例
2019/01/21 Javascript
vue递归获取父元素的元素实例
2020/08/07 Javascript
[01:02:07]Liquid vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python中实现精确的浮点数运算详解
2017/11/02 Python
python3实现163邮箱SMTP发送邮件
2018/05/22 Python
django加载本地html的方法
2018/05/27 Python
利用python list完成最简单的DB连接池方法
2019/08/09 Python
Python依赖包整体迁移方法详解
2019/08/15 Python
Python数学形态学实例分析
2019/09/06 Python
Python中base64与xml取值结合问题
2019/12/22 Python
总结Pyinstaller的坑及终极解决方法(小结)
2020/09/21 Python
世界最大的私人旅行指南出版商:孤独星球
2016/08/23 全球购物
采用冷却技术的超自然舒适度:GhostBed床垫
2018/09/18 全球购物
小米俄罗斯授权商店:Xiaomi俄罗斯
2019/12/08 全球购物
Monki官网:斯堪的纳维亚的独立时尚品牌
2020/11/09 全球购物
意大利奢侈品牌在线精品店:Jole.it
2020/11/23 全球购物
几个MySql的面试题
2013/04/22 面试题
如何写好自荐信
2014/04/07 职场文书
高三霸气励志标语
2014/06/24 职场文书
临时租车协议范本
2014/09/23 职场文书
社区灵活就业证明
2014/11/03 职场文书
python基于tkinter实现gif录屏功能
2021/05/19 Python
从np.random.normal()到正态分布的拟合操作
2021/06/02 Python