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在windows下实现ping操作并接收返回信息的方法
Mar 20 Python
Python常用的文件及文件路径、目录操作方法汇总介绍
May 21 Python
python操作字典类型的常用方法(推荐)
May 16 Python
Django日志模块logging的配置详解
Feb 14 Python
Python语法分析之字符串格式化
Jun 13 Python
Windows平台Python编程必会模块之pywin32介绍
Oct 01 Python
Django 限制访问频率的思路详解
Dec 24 Python
使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示
May 16 Python
Python使用xlrd实现读取合并单元格
Jul 09 Python
关于python中remove的一些坑小结
Jan 04 Python
PySwarms(Python粒子群优化工具包)的使用:GlobalBestPSO例子解析
Apr 05 Python
jupyter notebook保存文件默认路径更改方法汇总(亲测可以)
Jun 09 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
一个用php3编写的简单计数器
2006/10/09 PHP
在JavaScript中调用php程序
2009/03/09 PHP
将一维或多维的数组连接成一个字符串的php代码
2010/08/08 PHP
php fsockopen伪造post与get方法的详解
2013/06/14 PHP
php查找字符串出现次数的方法
2014/12/01 PHP
php类自动加载器实现方法
2015/07/28 PHP
php简单计算年龄的方法(周岁与虚岁)
2016/12/06 PHP
PHP实现页面静态化深入讲解
2021/03/04 PHP
javascript 进阶篇3 Ajax 、JSON、 Prototype介绍
2012/03/14 Javascript
js实现使用鼠标拖拽切换图片的方法
2015/05/04 Javascript
JS中SetTimeout和SetInterval使用初探
2017/03/23 Javascript
jQuery动态追加页面数据以及事件委托详解
2017/05/06 jQuery
微信小程序本地缓存数据增删改查实例详解
2017/05/24 Javascript
浅谈JS中this在各个场景下的指向
2019/08/14 Javascript
JS事件流与事件处理程序实例分析
2019/08/16 Javascript
SpringBoot在yml配置文件中配置druid的操作
2020/11/16 Javascript
Vue如何实现变量表达式选择器
2021/02/18 Vue.js
python实现带声音的摩斯码翻译实现方法
2015/05/20 Python
Python基于列表模拟堆栈和队列功能示例
2018/01/05 Python
Python基于递归算法求最小公倍数和最大公约数示例
2018/07/27 Python
在python里使用await关键字来等另外一个协程的实例
2020/05/04 Python
pytorch加载语音类自定义数据集的方法教程
2020/11/10 Python
纯css3实现鼠标经过图片显示描述的动画效果
2014/09/01 HTML / CSS
机电一体化毕业生求职信
2013/11/02 职场文书
金融专业推荐信
2013/11/14 职场文书
法人代表授权委托书
2014/04/08 职场文书
小学生学习雷锋倡议书
2014/05/15 职场文书
寻找最美家庭活动方案
2014/08/20 职场文书
2014年测量员工作总结
2014/12/12 职场文书
四年级学生期末评语
2014/12/26 职场文书
颐和园的导游词
2015/01/30 职场文书
停车场管理制度范本
2015/08/05 职场文书
慰问信的写作格式及范文!
2019/06/24 职场文书
导游词之西湖雷峰塔
2019/09/18 职场文书
Java如何实现通过键盘输入一个数组
2022/02/15 Java/Android
Python几种酷炫的进度条的方式
2022/04/11 Python