Python常见反爬虫机制解决方案


Posted in Python onJune 01, 2020

1、使用代理

适用情况:限制IP地址情况,也可解决由于“频繁点击”而需要输入验证码登陆的情况。

这种情况最好的办法就是维护一个代理IP池,网上有很多免费的代理IP,良莠不齐,可以通过筛选找到能用的。对于“频繁点击”的情况,我们还可以通过限制爬虫访问网站的频率来避免被网站禁掉。

proxies = {'http':'http://XX.XX.XX.XX:XXXX'}
Requests:
 import requests
 response = requests.get(url=url, proxies=proxies)
Urllib2:
 import urllib2
 proxy_support = urllib2.ProxyHandler(proxies)
 opener = urllib2.build_opener(proxy_support, urllib2.HTTPHandler)
 urllib2.install_opener(opener) # 安装opener,此后调用urlopen()时都会使用安装过的opener对象
 response = urllib2.urlopen(url)

2、时间设置

适用情况:限制频率情况。

Requests,Urllib2都可以使用time库的sleep()函数:

import time
time.sleep(1)

3、伪装成浏览器,或者反“反盗链”

有些网站会检查你是不是真的浏览器访问,还是机器自动访问的。这种情况,加上User-Agent,表明你是浏览器访问即可。有时还

会检查是否带Referer信息还会检查你的Referer是否合法,一般再加上Referer。

headers = {'User-Agent':'XXXXX'} # 伪装成浏览器访问,适用于拒绝爬虫的网站
headers = {'Referer':'XXXXX'}
headers = {'User-Agent':'XXXXX', 'Referer':'XXXXX'}
Requests:
 response = requests.get(url=url, headers=headers)
Urllib2:
 import urllib, urllib2  
 req = urllib2.Request(url=url, headers=headers)
 response = urllib2.urlopen(req)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 实现归并排序算法
Jun 05 Python
python 多线程应用介绍
Dec 19 Python
pygame学习笔记(1):矩形、圆型画图实例
Apr 15 Python
一步步教你用Python实现2048小游戏
Jan 19 Python
Python逐行读取文件中内容的简单方法
Feb 26 Python
简单了解python变量的作用域
Jul 30 Python
python实现从wind导入数据
Dec 03 Python
谈谈Python:为什么类中的私有属性可以在外部赋值并访问
Mar 05 Python
Python如何在windows环境安装pip及rarfile
Jun 15 Python
Flask-SocketIO服务端安装及使用代码示例
Nov 26 Python
详解BeautifulSoup获取特定标签下内容的方法
Dec 07 Python
Flask搭建一个API服务器的步骤
May 28 Python
解决python运行启动报错问题
Jun 01 #Python
利用python控制Autocad:pyautocad方式
Jun 01 #Python
Python 跨.py文件调用自定义函数说明
Jun 01 #Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
Jun 01 #Python
Python如何在main中调用函数内的函数方式
Jun 01 #Python
Python爬取YY评级分数并保存数据实现过程解析
Jun 01 #Python
基于Python绘制个人足迹地图
Jun 01 #Python
You might like
php adodb介绍
2009/03/19 PHP
php+mysql事务rollback&commit示例
2010/02/08 PHP
PHP Memcached应用实现代码
2010/02/08 PHP
两种php去除二维数组的重复项方法
2015/11/04 PHP
PHP的Yii框架中行为的定义与绑定方法讲解
2016/03/18 PHP
PHP环境搭建(php+Apache+mysql)
2016/11/14 PHP
PHPExcel实现的读取多工作表操作示例
2020/04/14 PHP
Jquery 弹出层插件实现代码
2009/10/24 Javascript
JavaScript 选中文字并响应获取的实现代码
2011/08/28 Javascript
iframe子页面获取父页面元素的方法
2013/11/05 Javascript
AngularJS初始化过程分析(引导程序)
2014/12/06 Javascript
浅谈利用JavaScript进行的DDoS攻击原理与防御
2015/06/04 Javascript
HTML5+jQuery插件Quicksand实现超酷的星际争霸2兵种分类展示效果(附demo源码下载)
2016/05/25 Javascript
Angular4学习笔记之实现绑定和分包
2017/08/01 Javascript
JS使用队列对数组排列,基数排序算法示例
2019/03/02 Javascript
详解vue使用插槽分发内容slot的用法
2019/03/28 Javascript
no-vnc和node.js实现web远程桌面的完整步骤
2019/08/11 Javascript
JS基础之逻辑结构与循环操作示例
2020/01/19 Javascript
[45:16]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第一场 12.12
2020/12/16 DOTA
Python实现字典依据value排序
2016/02/24 Python
Python中selenium实现文件上传所有方法整理总结
2017/04/01 Python
python pandas 对时间序列文件处理的实例
2018/06/22 Python
Python删除n行后的其他行方法
2019/01/28 Python
Python读写文件模式和文件对象方法实例详解
2019/09/17 Python
HTML5的结构和语义(5):交互
2008/10/17 HTML / CSS
Under Armour美国官网:美国知名高端功能性运动品牌
2016/09/05 全球购物
公司道歉信范文
2014/01/09 职场文书
客房部经理岗位职责
2015/02/02 职场文书
中秋节慰问信
2015/02/15 职场文书
毕业设计答辩开场白
2015/05/29 职场文书
庆元旦主持词
2015/07/06 职场文书
入党后的感想
2015/08/10 职场文书
普希金诗歌赏析(6首)
2019/08/22 职场文书
python学习之panda数据分析核心支持库
2021/05/07 Python
python中subplot大小的设置步骤
2021/06/28 Python
关于CentOS 8 搭建MongoDB4.4分片集群的问题
2021/10/24 MongoDB