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 22 Python
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
Apr 11 Python
Python SVM(支持向量机)实现方法完整示例
Jun 19 Python
Selenium控制浏览器常见操作示例
Aug 13 Python
Python中几种属性访问的区别与用法详解
Oct 10 Python
对django layer弹窗组件的使用详解
Aug 31 Python
python提取xml里面的链接源码详解
Oct 15 Python
pytorch如何冻结某层参数的实现
Jan 10 Python
Python3 selenium 实现QQ群接龙自动化功能
Apr 17 Python
tensorflow 2.1.0 安装与实战教程(CASIA FACE v5)
Jun 30 Python
python如何运行js语句
Sep 09 Python
Python+OpenCV图像处理——打印图片属性、设置存储路径、调用摄像头
Oct 22 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 HTML代码串截取代码
2008/12/29 PHP
浅谈php中mysql与mysqli的区别分析
2013/06/10 PHP
浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)(日常整理)
2015/10/26 PHP
php微信支付之公众号支付功能
2018/05/30 PHP
PHP echo()函数讲解
2019/02/15 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
JQuery的Alert消息框插件使用介绍
2010/10/09 Javascript
NodeJs中的非阻塞方法介绍
2012/06/05 NodeJs
把jquery 的dialog和ztree结合实现步骤
2013/08/02 Javascript
浅析JavaScript中的常用算法与函数
2013/11/21 Javascript
Jquery Post处理后不进入回调的原因及解决方法
2014/07/15 Javascript
一款基于jQuery的图片场景标注提示弹窗特效
2015/01/05 Javascript
jQuery对html元素的取值与赋值实例详解
2015/12/18 Javascript
JavaScript字符串删除重复字符的方法
2015/12/25 Javascript
使用vue.js制作分页组件
2016/06/27 Javascript
vue与vue-i18n结合实现后台数据的多语言切换方法
2018/03/08 Javascript
bootstrap中日历范围选择插件daterangepicker的使用详解
2018/04/17 Javascript
Python扫描IP段查看指定端口是否开放的方法
2015/06/09 Python
Python 中的with关键字使用详解
2016/09/11 Python
Python使用QQ邮箱发送Email的方法实例
2017/02/09 Python
Python利用BeautifulSoup解析Html的方法示例
2017/07/30 Python
Python实现的堆排序算法示例
2018/04/29 Python
python实现电脑自动关机
2018/06/20 Python
代码详解django中数据库设置
2019/01/28 Python
python 队列基本定义与使用方法【初始化、赋值、判断等】
2019/10/24 Python
详解Python的三种拷贝方式
2020/02/11 Python
CSS3的resize属性使用初探
2015/09/27 HTML / CSS
5.1手机促销活动
2014/01/17 职场文书
采购助理岗位职责
2014/02/16 职场文书
公司股份合作协议书
2014/12/07 职场文书
求职自我评价范文
2015/03/09 职场文书
工作简历自我评价
2015/03/11 职场文书
上市公司董事长岗位职责
2015/04/16 职场文书
2015年小学总务工作总结
2015/07/21 职场文书
养成教育工作总结
2015/08/13 职场文书
pytorch 6 batch_train 批训练操作
2021/05/28 Python