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操作MySQL数据库的方法分享
May 29 Python
详解python函数传参是传值还是传引用
Jan 16 Python
python实现在IDLE中输入多行的方法
Apr 19 Python
idea创建springMVC框架和配置小文件的教程图解
Sep 18 Python
pyqt 实现QlineEdit 输入密码显示成圆点的方法
Jun 24 Python
对django后台admin下拉框进行过滤的实例
Jul 26 Python
python django生成迁移文件的实例
Aug 31 Python
django框架单表操作之增删改实例分析
Dec 16 Python
解决python Jupyter不能导入外部包问题
Apr 15 Python
如何卸载python插件
Jul 08 Python
浅析NumPy 切片和索引
Sep 02 Python
django项目中使用云片网发送短信验证码的实现
Jan 19 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使用PDO方法详解
2014/12/27 PHP
PHP常见数组函数用法小结
2016/03/21 PHP
php适配器模式简单应用示例
2019/10/23 PHP
firefox中JS读取XML文件
2006/12/21 Javascript
Convert Seconds To Hours
2007/06/16 Javascript
JS保留两位小数,多位小数的示例代码
2014/01/07 Javascript
JavaScript 学习笔记之基础中的基础
2015/01/13 Javascript
js进行表单验证实例分析
2015/02/10 Javascript
JavaScript中连接操作Oracle数据库实例
2015/04/02 Javascript
Javascript实现获取及设置光标位置的方法
2015/07/21 Javascript
跟我学习javascript的函数调用和构造函数调用
2015/11/16 Javascript
分享12个实用的jQuery代码片段
2016/03/09 Javascript
onclick和onblur冲突问题的快速解决方法
2016/04/28 Javascript
浅析如何利用JavaScript进行语音识别
2016/10/27 Javascript
Angular的$http与$location
2016/12/26 Javascript
node.js的事件机制
2017/02/08 Javascript
JavaScript实现随机数生成器(去重)
2017/10/13 Javascript
vue指令做滚动加载和监听等
2019/05/26 Javascript
微信小程序上传图片并等比列压缩到指定大小的实例代码
2019/10/24 Javascript
Python实现对excel文件列表值进行统计的方法
2015/07/25 Python
python奇偶行分开存储实现代码
2018/03/19 Python
基于python实现KNN分类算法
2020/04/23 Python
python读取并定位excel数据坐标系详解
2019/06/26 Python
Python使用random模块生成随机数操作实例详解
2019/09/17 Python
python绘制无向图度分布曲线示例
2019/11/22 Python
使用BeautifulSoup4解析XML的方法小结
2020/12/07 Python
纯CSS3实现圆角效果(含IE兼容解决方法)
2014/05/07 HTML / CSS
css3 中的新特性加强记忆详解
2016/04/16 HTML / CSS
简单整理HTML5的基本特性和语法
2016/02/18 HTML / CSS
化石印度尼西亚在线商店:Fossil Indonesia
2019/03/11 全球购物
品牌推广活动策划方案
2014/08/19 职场文书
党员群众路线教育实践活动学习笔记
2014/11/05 职场文书
优秀共产党员推荐材料
2014/12/18 职场文书
经理岗位职责
2015/02/02 职场文书
2016党员学习作风建设心得体会
2016/01/21 职场文书
MySQL基于索引的压力测试的实现
2021/11/07 MySQL