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 zip文件 压缩
Dec 24 Python
Python中SOAP项目的介绍及其在web开发中的应用
Apr 14 Python
浅谈Python中chr、unichr、ord字符函数之间的对比
Jun 16 Python
pandas string转dataframe的方法
Apr 11 Python
把csv文件转化为数组及数组的切片方法
Jul 04 Python
python中时间、日期、时间戳的转换的实现方法
Jul 06 Python
python 检查数据中是否有缺失值,删除缺失值的方式
Dec 02 Python
Python正则表达式高级使用方法汇总
Jun 18 Python
python pandas dataframe 去重函数的具体使用
Jul 20 Python
python 深度学习中的4种激活函数
Sep 18 Python
python3爬虫中引用Queue的实例讲解
Nov 24 Python
Django 如何实现文件上传下载
Apr 08 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
桌面中心(二)数据库写入
2006/10/09 PHP
PHP 和 MySQL 基础教程(三)
2006/10/09 PHP
给php新手谈谈我的学习心得
2007/02/25 PHP
Zend Framework框架之Zend_Mail实现发送Email邮件验证功能及解决标题乱码的方法
2016/03/21 PHP
PHP读取文本文件并逐行输出该行使用最多的字符与对应次数的方法
2016/11/25 PHP
Yii 2.0自带的验证码使用经验分享
2017/06/19 PHP
在 Laravel 中 “规范” 的开发短信验证码发送功能
2017/10/26 PHP
PHP上传文件及图片到七牛的方法
2018/07/25 PHP
YII框架关联查询操作示例
2019/04/29 PHP
基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码
2011/08/28 Javascript
高性能Javascript笔记 数据的存储与访问性能优化
2012/08/02 Javascript
jquery offset函数应用实例
2012/11/14 Javascript
jQuery UI 实现email输入提示实例
2013/08/15 Javascript
jQuery在iframe中无法弹出对话框的解决方法
2014/01/12 Javascript
JavaScript跨域方法汇总
2014/10/16 Javascript
JavaScript中window.showModalDialog()用法详解
2014/12/18 Javascript
利用jQuery实现WordPress中@的ID悬浮显示评论内容
2015/12/11 Javascript
Bootstrap基本插件学习笔记之轮播幻灯片(23)
2016/12/08 Javascript
深入理解JavaScript中的预解析
2017/01/04 Javascript
Vue.js基础学习之class与样式绑定
2017/03/20 Javascript
javascript实现圣旨卷轴展开效果(代码分享)
2017/03/23 Javascript
微信开发之企业付款到银行卡接口开发的示例代码
2018/09/18 Javascript
[02:10]三分钟回顾完美世界城市挑战赛
2019/01/24 DOTA
Django实现快速分页的方法实例
2017/10/22 Python
pandas进行数据的交集与并集方式的数据合并方法
2018/06/27 Python
python 实现调用子文件下的模块方法
2018/12/07 Python
美国生鲜及杂货电商:FreshDirect
2018/01/29 全球购物
Python的两道面试题
2013/06/29 面试题
岗位职责定义及内容
2013/11/08 职场文书
职业生涯规划书范文
2014/03/10 职场文书
竞选大学学委演讲稿
2014/09/13 职场文书
住宿生擅自离校检讨书
2014/09/22 职场文书
2015安全保卫工作总结
2015/04/25 职场文书
详解Laravel服务容器的优势
2021/05/29 PHP
基于JavaScript实现年月日三级联动
2021/06/22 Javascript
MySQL数据库查询进阶之多表查询详解
2022/04/08 MySQL