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提取字典key列表的方法
Jul 11 Python
深入理解NumPy简明教程---数组2
Dec 17 Python
CentOS 7下安装Python 3.5并与Python2.7兼容并存详解
Jul 07 Python
利用Opencv中Houghline方法实现直线检测
Feb 11 Python
python代码 输入数字使其反向输出的方法
Dec 22 Python
Python 中Django安装和使用教程详解
Jul 03 Python
python 图片去噪的方法示例
Jul 09 Python
Python简易版图书管理系统
Aug 12 Python
Python3.7+tkinter实现查询界面功能
Dec 24 Python
python opencv如何实现图片绘制
Jan 19 Python
python目标检测给图画框,bbox画到图上并保存案例
Mar 10 Python
关于Keras Dense层整理
May 21 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
source.php查看源文件
2006/12/09 PHP
基于PHP导出Excel的小经验 完美解决乱码问题
2013/06/10 PHP
学习php中的正则表达式
2014/08/17 PHP
php+xml实现在线英文词典查询的方法
2015/01/23 PHP
php循环table实现一行两列显示的方法
2015/06/04 PHP
PHP7常量数组用法分析
2016/09/26 PHP
JS是否可以跨文件同时控制多个iframe页面的应用技巧
2007/12/16 Javascript
ext form 表单提交数据的方法小结
2008/08/08 Javascript
用document.documentElement取代document.body的原因分析
2009/11/12 Javascript
JS不能跨域借助jquery获取IP地址的方法
2014/08/20 Javascript
用原生js做个简单的滑动效果的回到顶部
2014/10/15 Javascript
浅谈JavaScript事件的属性列表
2015/03/01 Javascript
js的flv视频播放器插件使用方法
2015/06/23 Javascript
jQuery的Ajax用户认证和注册技术实例教程(附demo源码)
2015/12/08 Javascript
基于JavaScript将表单序列化类型的数据转化成对象的处理(允许对象中包含对象)
2015/12/28 Javascript
微信小程序 循环及嵌套循环的使用总结
2017/09/26 Javascript
vuejs前后端数据交互之从后端请求数据的实例
2018/08/11 Javascript
通过实例了解JS 连续赋值
2019/09/24 Javascript
JS FormData对象使用方法实例详解
2020/02/12 Javascript
[05:04]完美世界携手游戏风云打造 卡尔工作室地图界面篇
2013/04/23 DOTA
[02:32]DOTA2英雄基础教程 美杜莎
2014/01/07 DOTA
python中range()与xrange()用法分析
2016/09/21 Python
python检测文件夹变化,并拷贝有更新的文件到对应目录的方法
2018/10/17 Python
python判断输入日期为第几天的实例
2018/11/13 Python
python矩阵/字典实现最短路径算法
2019/01/17 Python
基于python中__add__函数的用法
2019/11/25 Python
加拿大国民体育购物网站:National Sports
2018/11/04 全球购物
FirstCry阿联酋儿童和婴儿产品网上购物:FirstCry.ae
2021/02/22 全球购物
实习评语
2013/12/16 职场文书
安全生产网格化管理实施方案
2014/03/01 职场文书
领导干部作风建设剖析材料
2014/10/11 职场文书
开除员工通知
2015/04/22 职场文书
小学生光盘行动倡议书
2015/04/28 职场文书
go 原生http web 服务跨域restful api的写法介绍
2021/04/27 Golang
如何理解Vue简单状态管理之store模式
2021/05/15 Vue.js
python源码剖析之PyObject详解
2021/05/18 Python