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 相关文章推荐
linux下安装easy_install的方法
Feb 10 Python
使用Python将数组的元素导出到变量中(unpacking)
Oct 27 Python
利用Python操作消息队列RabbitMQ的方法教程
Jul 19 Python
Python 由字符串函数名得到对应的函数(实例讲解)
Aug 10 Python
Python方法的延迟加载的示例代码
Dec 18 Python
Python实现的凯撒密码算法示例
Apr 12 Python
python创造虚拟环境方法总结
Mar 04 Python
Python玩转加密的技巧【推荐】
May 13 Python
numpy ndarray 取出满足特定条件的某些行实例
Dec 05 Python
Python数据可视化:饼状图的实例讲解
Dec 07 Python
Python参数传递实现过程及原理详解
May 14 Python
Python实现爬取网页中动态加载的数据
Aug 17 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配置心得包含MYSQL5乱码解决
2006/11/20 PHP
首页四格,首页五格For6.0(GBK)(UTF-8)[12种组合][9-18][版主安装测试通过]
2007/09/24 PHP
PHP删除目录及目录下所有文件的方法详解
2013/06/06 PHP
PHP中常用的字符串格式化函数总结
2014/11/19 PHP
SCP远程VPS快速搬家和WDCP升级php5.3安装memcached和eaccelerator教程
2017/07/27 PHP
thinkPHP5.1框架使用SemanticUI实现分页功能示例
2019/08/03 PHP
ie和firefox中img对象区别的困惑
2006/12/27 Javascript
MooTools 1.2介绍
2009/09/14 Javascript
javascript 判断中文字符长度的函数代码
2012/08/27 Javascript
jQuery学习笔记 操作jQuery对象 属性处理
2012/09/19 Javascript
JQuery验证工具类搜集整理
2013/01/16 Javascript
jQuery对象数据缓存Cache原理及jQuery.data方法区别介绍
2013/04/07 Javascript
常见浏览器多长时间会提示“脚本运行时间过长”总结
2014/04/29 Javascript
微信小程序 textarea 详解及简单使用方法
2016/12/05 Javascript
基于Koa(nodejs框架)对json文件进行增删改查的示例代码
2019/02/02 NodeJs
javascript中可能用得到的全部的排序算法
2020/03/05 Javascript
JavaScript动画实例之粒子文本的实现方法详解
2020/07/28 Javascript
Python判断文本中消息重复次数的方法
2016/04/27 Python
Python操作SQLite数据库的方法详解【导入,创建,游标,增删改查等】
2017/07/11 Python
python字典改变value值方法总结
2019/06/21 Python
如何基于Python爬取隐秘的角落评论
2020/07/02 Python
为什么说python更适合树莓派编程
2020/07/20 Python
如何从csv文件构建Tensorflow的数据集
2020/09/21 Python
matplotlib制作雷达图报错ValueError的实现
2021/01/05 Python
基于HTML5 Canvas的3D动态Chart图表的示例
2017/11/02 HTML / CSS
印度尼西亚综合购物网站:Lazada印尼
2016/09/07 全球购物
德国运动营养和健身网上商店:Myprotein.de
2018/07/18 全球购物
拥有超过850家商店的美国在线派对商店:Party City
2018/10/21 全球购物
视图的作用
2014/12/19 面试题
公司门卫岗位职责
2014/03/15 职场文书
活动总结报告怎么写
2014/07/03 职场文书
留学推荐信(中英文版)
2015/03/26 职场文书
2016年小学生寒假总结
2015/10/10 职场文书
阿里云服务器搭建Php+Apache运行环境的详细过程
2021/05/15 PHP
MySQL 分区表中分区键为什么必须是主键的一部分
2022/03/17 MySQL
Spring JPA 增加字段执行异常问题及解决
2022/06/10 Java/Android