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 相关文章推荐
vc6编写python扩展的方法分享
Jan 17 Python
python中的__slots__使用示例
Feb 26 Python
在win和Linux系统中python命令行运行的不同
Jul 03 Python
python调用百度语音识别api
Aug 30 Python
使用Scrapy爬取动态数据
Oct 21 Python
Python实现的栈、队列、文件目录遍历操作示例
May 06 Python
python如何以表格形式打印输出的方法示例
Jun 21 Python
python word转pdf代码实例
Aug 16 Python
如何使用 Python 读取文件和照片的创建日期
Sep 05 Python
python实现图书馆抢座(自动预约)功能的示例代码
Sep 29 Python
python自动化测试三部曲之request+django实现接口测试
Oct 07 Python
python飞机大战游戏实例讲解
Dec 04 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 静态变量的初始化
2009/11/15 PHP
批量去除PHP文件中bom的PHP代码
2012/03/13 PHP
php提示Warning:mysql_fetch_array() expects的解决方法
2014/12/16 PHP
php实现表单多按钮提交action的处理方法
2015/10/24 PHP
php-fpm开启状态统计的方法详解
2017/06/23 PHP
js脚本学习 比较实用的基础
2006/09/07 Javascript
IE JS编程需注意的内存释放问题
2009/06/23 Javascript
两种方法实现文本框输入内容提示消失
2013/03/17 Javascript
两种常用的javascript数组去重方法思路及代码
2013/03/26 Javascript
分享自己用JS做的扫雷小游戏
2016/02/17 Javascript
JS简单循环遍历json数组的方法
2016/04/22 Javascript
JavaScript数值千分位格式化的两种简单实现方法
2016/08/01 Javascript
微信小程序 页面之间传参实例详解
2017/01/13 Javascript
javascript基本常用排序算法解析
2017/09/27 Javascript
node结合swig渲染摸板的方法
2018/04/11 Javascript
JS实现HTML页面中动态显示当前时间完整示例
2018/07/30 Javascript
vue 自定义提示框(Toast)组件的实现代码
2018/08/17 Javascript
JavaScript实现电灯开关小案例
2020/03/30 Javascript
vue+element使用动态加载路由方式实现三级菜单页面显示的操作
2020/08/04 Javascript
Python实现的百度站长自动URL提交小工具
2014/06/27 Python
Python可变参数函数用法实例
2015/07/07 Python
python调用fortran模块
2016/04/08 Python
对python中使用requests模块参数编码的不同处理方法
2018/05/18 Python
完美解决Python 2.7不能正常使用pip install的问题
2018/06/12 Python
python爬虫之urllib3的使用示例
2018/07/09 Python
Python单向链表和双向链表原理与用法实例详解
2018/08/31 Python
python 统计一个列表当中的每一个元素出现了多少次的方法
2018/11/14 Python
python修改字典键(key)的方法
2019/08/05 Python
Python 读取WAV音频文件 画频谱的实例
2020/03/14 Python
Tensorflow与Keras自适应使用显存方式
2020/06/22 Python
波兰家具和室内装饰品购物网站:Vivre
2018/04/10 全球购物
美国环保妈妈、儿童和婴儿用品购物网站:The Tot
2019/11/24 全球购物
质检部岗位职责
2013/11/11 职场文书
2015年共青团工作总结
2015/05/15 职场文书
高中地理教学反思
2016/02/19 职场文书
Java实现字符串转为驼峰格式的方法详解
2022/07/07 Java/Android