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中的__slots__使用示例
Feb 26 Python
python通过自定义isnumber函数判断字符串是否为数字的方法
Apr 23 Python
Python实现字符串反转的常用方法分析【4种方法】
Sep 30 Python
Python3实现发送QQ邮件功能(附件)
Dec 23 Python
python 字符串只保留汉字的方法
Nov 16 Python
python 处理telnet返回的More,以及get想要的那个参数方法
Feb 14 Python
详解python中init方法和随机数方法
Mar 13 Python
检测python爬虫时是否代理ip伪装成功的方法
Jul 12 Python
python字符串切割:str.split()与re.split()的对比分析
Jul 16 Python
Pytorch实现GoogLeNet的方法
Aug 18 Python
windows支持哪个版本的python
Jul 03 Python
Python程序慢的重要原因
Sep 04 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中利用str_pad函数生成数字递增形式的产品编号
2013/09/30 PHP
PHP生成Gif图片验证码
2013/10/27 PHP
PHP开源开发框架ZendFramework使用中常见问题说明及解决方案
2014/06/12 PHP
zend framework中使用memcache的方法
2016/03/04 PHP
js+CSS 图片等比缩小并垂直居中实现代码
2008/12/01 Javascript
Mootools 1.2教程 函数
2009/09/15 Javascript
关于window.pageYOffset和document.documentElement.scrollTop
2011/04/05 Javascript
原生JS操作网页给p元素添加onclick事件及表格隔行变色
2013/12/01 Javascript
JS基于cookie实现来宾统计记录访客信息的方法
2015/08/04 Javascript
AngularJS转换响应内容
2016/01/27 Javascript
vue-cli如何快速构建vue项目
2017/04/26 Javascript
JavaScript 保护变量不被随意修改的实现代码
2017/09/27 Javascript
vue-cli脚手架config目录下index.js配置文件的方法
2018/03/13 Javascript
JS简单实现动态添加HTML标记的方法示例
2018/04/08 Javascript
Vue中$refs的用法详解
2018/06/24 Javascript
JavaScript函数apply()和call()用法与异同分析
2018/08/10 Javascript
解决在vue项目中webpack打包后字体不生效的问题
2018/09/01 Javascript
小程序实现搜索界面 小程序实现推荐搜索列表效果
2019/05/18 Javascript
vue-cli3自动消除console.log()的调试信息方式
2020/10/21 Javascript
Python实现过滤单个Android程序日志脚本分享
2015/01/16 Python
python append、extend与insert的区别
2016/10/13 Python
我喜欢你 抖音表白程序python版
2019/04/07 Python
对Python _取log的几种方式小结
2019/07/25 Python
Pytorch实现各种2d卷积示例
2019/12/30 Python
logging level级别介绍
2020/02/21 Python
python删除某个目录文件夹的方法
2020/05/26 Python
python利用paramiko实现交换机巡检的示例
2020/09/22 Python
如何使用Pytorch搭建模型
2020/10/26 Python
Html5中的桌面通知Notification的实现
2018/09/25 HTML / CSS
高清安全摄像头系统:Lorex Technology
2018/07/20 全球购物
Bibloo奥地利:购买女装、男装、童装、鞋和配件
2018/10/18 全球购物
Hoover胡佛官网:美国吸尘器和洗地机品牌
2019/01/09 全球购物
团日活动总结范文
2014/04/25 职场文书
被告答辩状范文
2015/05/22 职场文书
在CSS中映射鼠标位置并实现通过鼠标移动控制页面元素效果(实例代码)
2021/04/22 HTML / CSS
《最终幻想14》6.01版本4月5日推出 追加新任务新道具
2022/04/03 其他游戏