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 相关文章推荐
python3使用tkinter实现ui界面简单实例
Jan 10 Python
极简的Python入门指引
Apr 01 Python
Python字符串处理函数简明总结
Apr 13 Python
Python随手笔记第一篇(2)之初识列表和元组
Jan 23 Python
python基础教程之五种数据类型详解
Jan 12 Python
idea创建springMVC框架和配置小文件的教程图解
Sep 18 Python
基于Python对数据shape的常见操作详解
Dec 25 Python
Python在图片中插入大量文字并且自动换行
Jan 02 Python
Python 学习教程之networkx
Apr 15 Python
python数组循环处理方法
Aug 26 Python
python模块如何查看
Jun 16 Python
Scrapy-Redis之RedisSpider与RedisCrawlSpider详解
Nov 18 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
[原创]ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法
2015/10/10 PHP
php正则去除网页中所有的html,js,css,注释的实现方法
2016/11/03 PHP
php实现微信企业付款到个人零钱功能
2018/10/09 PHP
offsetParent 算法分析
2010/04/05 Javascript
jquery插件之easing使用
2010/08/19 Javascript
jQuery UI 应用不同Theme的办法
2010/09/12 Javascript
仅IE6/7/8中innerHTML返回值忽略英文空格的问题
2011/04/07 Javascript
js的表单操作 简单计算器
2011/12/29 Javascript
jquery formValidator插件ajax验证 内容不做任何修改再离开提示错误的bug解决方法
2013/01/04 Javascript
jQuery.extend()的实现方式详解及实例
2013/06/29 Javascript
js实现简单计算器
2015/11/22 Javascript
轻松学习jQuery插件EasyUI EasyUI创建RSS Feed阅读器
2015/11/30 Javascript
JS获取CSS样式(style/getComputedStyle/currentStyle)
2016/01/19 Javascript
详解JavaScript数组和字符串中去除重复值的方法
2016/03/07 Javascript
jQuery获取单击节点对象的方法
2016/06/02 Javascript
详细解读Jquery各Ajax函数($.get(),$.post(),$.ajax(),$.getJSON())
2016/08/15 Javascript
微信小程序 wxapp内容组件 icon详细介绍
2016/10/31 Javascript
js 获取本地文件及目录的方法(推荐)
2016/11/10 Javascript
JSON中key动态设置及JSON.parse和JSON.stringify()的区别
2016/12/29 Javascript
ES6中Proxy代理用法实例浅析
2017/04/06 Javascript
JS实现电商放大镜效果
2017/08/24 Javascript
jQuery实现上下滚动公告栏详细代码
2018/11/21 jQuery
Vue一次性简洁明了引入所有公共组件的方法
2018/11/28 Javascript
js Array.slice的8种不同用法示例
2019/07/10 Javascript
用Python将IP地址在整型和字符串之间轻松转换
2017/03/22 Python
Python基于回溯法子集树模板解决旅行商问题(TSP)实例
2017/09/05 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
2018/05/24 Python
Win8.1下安装Python3.6提示0x80240017错误的解决方法
2018/07/31 Python
美国艺术和工艺品商店:Hobby Lobby
2020/12/09 全球购物
挂职自我鉴定
2014/02/26 职场文书
领导班子对照检查材料
2014/09/22 职场文书
酒店管理专业毕业生自我鉴定
2014/09/29 职场文书
2015年少先队活动总结
2015/03/25 职场文书
2016年三严三实党课学习心得体会
2016/01/06 职场文书
你会写请假条吗?
2019/06/26 职场文书
vue 自定义组件添加原生事件
2022/04/21 Vue.js