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输出一个杨辉三角的例子
Jun 13 Python
python切片及sys.argv[]用法详解
May 25 Python
了解不常见但是实用的Python技巧
May 23 Python
python中文分词库jieba使用方法详解
Feb 11 Python
利用Python脚本批量生成SQL语句
Mar 04 Python
keras 多gpu并行运行案例
Jun 10 Python
在Keras中CNN联合LSTM进行分类实例
Jun 29 Python
python 绘制正态曲线的示例
Sep 24 Python
pytest配置文件pytest.ini的详细使用
Apr 17 Python
详解python字符串驻留技术
May 21 Python
Python开发工具Pycharm的安装以及使用步骤总结
Jun 24 Python
Python实现自动玩连连看的脚本分享
Apr 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
解决file_get_contents无法请求https连接的方法
2013/12/17 PHP
PHP 利用Mail_MimeDecode类提取邮件信息示例
2014/01/26 PHP
php采用curl访问域名返回405 method not allowed提示的解决方法
2014/06/26 PHP
CI框架安全类Security.php源码分析
2014/11/04 PHP
简单概括PHP的字符串中单引号与双引号的区别
2016/05/07 PHP
php mysql procedure实现获取多个结果集的方法【基于thinkPHP】
2016/11/09 PHP
PHP结合Ffmpeg快速搭建流媒体服务的实践记录
2018/10/31 PHP
JavaScript 程序编码规范
2010/11/23 Javascript
不同编码的页面表单数据乱码问题解决方法
2015/02/15 Javascript
在Ubuntu系统上安装Ghost博客平台的教程
2015/06/17 Javascript
jQuery+Ajax实现无刷新分页
2015/10/30 Javascript
JavaScript修改作用域外变量的方法
2016/03/25 Javascript
jQuery自定义图片缩放拖拽插件imageQ实现方法(附demo源码下载)
2016/05/27 Javascript
jQuery实现div横向拖拽排序的简单实例
2016/07/13 Javascript
基于jQuery实现的幻灯图片切换
2016/12/02 Javascript
D3.js中强制异步文件读取同步的几种方法
2017/02/06 Javascript
jquery.guide.js新版上线操作向导镂空提示jQuery插件(推荐)
2017/05/20 jQuery
AngularJS发送异步Get/Post请求方法
2018/08/13 Javascript
vuex actions传递多参数的处理方法
2018/09/18 Javascript
默认浏览器设置及vue自动打开页面的方法
2018/09/21 Javascript
支付宝小程序tabbar底部导航
2018/11/06 Javascript
vue.js循环radio的实例
2019/11/07 Javascript
JS操作Fckeditor的一些常用方法(获取、插入等)
2020/02/19 Javascript
代码总结Python2 和 Python3 字符串的区别
2020/01/28 Python
python numpy实现多次循环读取文件 等间隔过滤数据示例
2020/03/14 Python
经理管理专业自荐信范文
2013/12/31 职场文书
七年级地理教学反思
2014/01/26 职场文书
初中语文教学反思
2014/02/02 职场文书
社区优秀志愿者材料
2014/02/02 职场文书
金融专业毕业生自荐信
2014/06/26 职场文书
公务员四风问题对照检查材料整改措施
2014/09/26 职场文书
教师对照四风自我剖析材料
2014/09/30 职场文书
商家认证委托书格式
2014/10/16 职场文书
单位接收函格式
2015/01/30 职场文书
Java基于字符界面的简易收银台
2021/06/26 Java/Android
详解Spring Security如何在权限中使用通配符
2022/06/28 Java/Android