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算法之图的遍历
Nov 16 Python
Python3结合Dlib实现人脸识别和剪切
Jan 24 Python
基于python历史天气采集的分析
Feb 14 Python
Python基于datetime或time模块分别获取当前时间戳的方法实例
Feb 19 Python
python 设置输出图像的像素大小方法
Jul 04 Python
pycharm新建一个python工程步骤
Jul 16 Python
django连接mysql数据库及建表操作实例详解
Dec 10 Python
Python time库基本使用方法分析
Dec 13 Python
在Pytorch中计算自己模型的FLOPs方式
Dec 30 Python
pycharm 复制代码出现空格的解决方式
Jan 15 Python
FP-growth算法发现频繁项集——构建FP树
Jun 24 Python
详解Python中下划线的5种含义
Jul 15 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编程最快明白》第二讲 数字、浮点、布尔型、字符串和数组
2010/11/01 PHP
wordpress安装过程中遇到中文乱码的处理方法
2015/04/21 PHP
WordPress中限制非管理员用户在文章后只能评论一次
2015/12/31 PHP
php版微信公众平台入门教程之开发者认证的方法
2016/09/26 PHP
PHP框架自动加载类文件原理详解
2017/06/06 PHP
tp5 实现列表数据根据状态排序
2019/10/18 PHP
JCalendar 日历控件 v1.0 beta[兼容IE&Firefox] 有文档和例子
2007/05/30 Javascript
用jquery实现下拉菜单效果的代码
2010/07/25 Javascript
在Node.js应用中使用Redis的方法简介
2015/06/24 Javascript
jQuery 翻页组件yunm.pager.js实现div局部刷新的思路
2016/08/11 Javascript
Bootstrap禁用响应式布局的实现方法
2017/03/09 Javascript
浅谈如何通过node.js对数据进行MD5加密
2018/05/16 Javascript
微信小程序之自定义组件的实现代码(附源码)
2018/08/02 Javascript
使用localStorage替代cookie做本地存储
2019/09/25 Javascript
微信小程序实现翻牌抽奖动画
2020/09/21 Javascript
vue下载二进制流图片操作
2020/10/26 Javascript
微信小程序实现页面左右滑动
2020/11/16 Javascript
python 图片验证码代码
2008/12/07 Python
python复制文件到指定目录的实例
2018/04/27 Python
Python Request爬取seo.chinaz.com百度权重网站的查询结果过程解析
2019/08/13 Python
Python字典中的值为列表或字典的构造实例
2019/12/16 Python
浅谈图像处理中掩膜(mask)的意义
2020/02/19 Python
python 写函数在一定条件下需要调用自身时的写法说明
2020/06/01 Python
如何真正的了解python装饰器
2020/08/14 Python
五种Python转义表示法
2020/11/27 Python
Python的logging模块基本用法
2020/12/24 Python
纯css3实现效果超级炫的checkbox复选框和radio单选框
2014/09/01 HTML / CSS
详解css3 Transition属性(平滑过渡菜单栏案例)
2017/09/05 HTML / CSS
HTML5轻松实现全屏视频背景的示例
2018/04/23 HTML / CSS
新闻专业个人求职信
2013/12/19 职场文书
合伙经营协议书
2014/04/18 职场文书
2014教师研修学习体会
2014/07/08 职场文书
房屋维修协议书范本
2014/09/25 职场文书
家长意见和建议怎么写
2015/06/04 职场文书
Mysql 如何实现多张无关联表查询数据并分页
2021/06/05 MySQL
python机器学习Github已达8.9Kstars模型解释器LIME
2021/11/23 Python