Scrapy———反爬蟲的一些基本應對方法
1. IP地址驗證
背景:有些網站會使用IP地址驗證進行反爬蟲處理,檢查客戶端的IP地址,若同一個IP地址頻繁訪問,則會判斷該客戶端是爬蟲程序。
解決方案:
1. 讓Scrapy不斷隨機更換代理服務器的IP地址,如在middlewares.py中添加如下類:
1 class RandomProxyMiddleware(object):
2 def process request(self,request,spider):
3 request.meta['proxy]=get_random_proxy()
2.在setting.py中啓用自定義middleware,添加如下代碼:
DOWNLOADER MIDDLEWARES={
'YourSpiderName.middlewares.RandomProxyMidderware' : 543
}
2. 禁用cookie
背景: 有些網站可以通過跟蹤Cookie來識別是否是同一個客戶端。Scrapy默認開啓了cookie.
解決方案: 若爬取的網站不需要登陸,可通過禁用Cookie以反識別:
1. 在setting.py中,添加以下代碼:
1 cookies_enabled=False
3. 違反爬蟲規則文件
背景:一般網站都有robots.txt文件,Scrapy會識別並遵從其爬蟲規則。
解決方案:讓爬蟲違反爬蟲規則文件的限制,强行爬取站點信息:
1. 在setting.py中設置:
1 ROBOTSTXT OBEY=False
4. 限制訪問頻率
背景:當同一個IP地址,同一個客戶端訪問目標網站過於頻繁時,很可能會被當成機器程序(爬蟲)禁止訪問。
解決方案: 模擬正常用戶訪問的速度,限制Scrapy的訪問頻率
1. 在setting.py中添加以下代碼:
#開啓訪問頻率限制
AUTOTHROTTLE ENABLED=True #設置訪問開始的延遲
AUTOTHROTTLE START DELAY=5 #設置訪問之間的最大延遲
AUTOTHTOTTLE MAX DELAY=60 #設置Scrapy并行發給每臺遠程服務器的請求數量
AUTOTHROTTLE TARGET CONCUTTENCY=1.0 #設置下載之後的自動高延遲
DOWNLOAD DELAY=3
5. 圖形驗證碼
背景:某些網站在同一IP,同一個客戶端訪問次數超過限制后會要求輸入圖形驗證碼,只有成功輸入的圖形驗證碼才能繼續訪問。
解決方案:
1. 使用PIL,Libsvrn等庫自己開發程序來識別圖形驗證碼;
2. 使用第三方識別,即那些圖形驗證碼的在綫識別網站,不過可能需要收費。
Scrapy———反爬蟲的一些基本應對方法的更多相关文章
- Scrapy反爬
1,随机更换 user-agent: 将足够多的user-agent放在settings中,在parse方法中调用 缺点:每一个request中都要调用这个方法 这个是scrapy的流程图. 既然每一 ...
- Python Scrapy反爬虫常见解决方案(包含5种方法)
爬虫的本质就是“抓取”第二方网站中有价值的数据,因此,每个网站都会或多或少地采用一些反爬虫技术来防范爬虫.比如前面介绍的通过 User-Agent 请求头验证是否为浏览器.使用 JavaScript ...
- 使用scrapy爬虫,爬取17k小说网的案例-方法二
楼主准备爬取此页面的小说,此页面一共有125章 我们点击进去第一章和第一百二十五章发现了一个规律 我们看到此链接的 http://www.17k.com/chapter/271047/6336386 ...
- 关于使用scrapy框架编写爬虫以及Ajax动态加载问题、反爬问题解决方案
Python爬虫总结 总的来说,Python爬虫所做的事情分为两个部分,1:将网页的内容全部抓取下来,2:对抓取到的内容和进行解析,得到我们需要的信息. 目前公认比较好用的爬虫框架为Scrapy,而且 ...
- 第三百四十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—cookie禁用、自动限速、自定义spider的settings,对抗反爬机制
第三百四十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—cookie禁用.自动限速.自定义spider的settings,对抗反爬机制 cookie禁用 就是在Scrapy的配置文件set ...
- 第三百四十五节,Python分布式爬虫打造搜索引擎Scrapy精讲—爬虫和反爬的对抗过程以及策略—scrapy架构源码分析图
第三百四十五节,Python分布式爬虫打造搜索引擎Scrapy精讲—爬虫和反爬的对抗过程以及策略—scrapy架构源码分析图 1.基本概念 2.反爬虫的目的 3.爬虫和反爬的对抗过程以及策略 scra ...
- 二十四 Python分布式爬虫打造搜索引擎Scrapy精讲—爬虫和反爬的对抗过程以及策略—scrapy架构源码分析图
1.基本概念 2.反爬虫的目的 3.爬虫和反爬的对抗过程以及策略 scrapy架构源码分析图
- scrapy——4 —反爬措施—logging—重要参数—POST请求发送实战
scrapy——4 常用的反爬虫策略有哪些 怎样使用logging设置 Resquest/Response重要参数有哪些 Scrapy怎么发送POST请求 动态的设置User-Agent(随即切换Us ...
- Scrapy中的反反爬、logging设置、Request参数及POST请求
常用的反反爬策略 通常防止爬虫被反主要有以下几策略: 动态设置User-Agent(随机切换User-Agent,模拟不同用户的浏览器信息.) 禁用cookies(也就是不启用cookies midd ...
随机推荐
- 类818tu.c微信小说分销系统设计之定时模板消息源码
近期将出个系列讲解开发过程,同时作为此系统的开发记录吧,万能的博客园,本边讲解如何发送模板消息,并且能够定时发送,下一篇讲解如何处理多个公众号的网页授权登录问题 [后台]http://xiaoshuo ...
- 【Unity游戏开发】SpriteAtlas与AssetBundle最佳食用方案
一.简介 在Unity步入2019.4以后,新版的SpriteAtlas日趋完善,已经完全可以在商业项目中使用了.但是纵观网络平台上,许多关于SpriteAtlas的文章还停留在2018的初版时期,其 ...
- Access denied for user ''@'localhost' to database 'mysql'问题
Access denied for user ''@'localhost' to database 'mysql'问题 MySQL : Access denied for user ''@'local ...
- idea提交svn不显示新建文件
在idea中,使用svn提交时可能会出现 预期文件没出现在提交目录里. 是因为没有把新建文件添加到版本控制里. 解决办法:右键选择文件→subversion→add to vcs. 自动把新文件添加 ...
- 前端面试题归类-HTML1
一.HTML5的新特性? 1.增强了表单,input新增了一些type:常用 color----定义调色板 tel-----定义包含电话号码的输入域 email---定义包含email地址的输入域 s ...
- Hbase-cdh5.14.2与kylin集成异常
1.原先使用版本:apache-kylin-2.5.1-bin-hbase1x 原生版本 启动报错出现异常: Failed to find metadata store by url: kylin_m ...
- ThinkPHP的url简化
TP的url请求简化 下面是apache的配置过程,可以参考: 1. httpd.conf 配置文件中加载了mod_rewrite.so模块 2. AllowOverride ...
- 小米11和iphone12参数对比哪个好
小米11:搭载最新一代三星的AMOLED屏幕,120Hz屏幕刷新,iPhone12使用全新一代的视网膜屏,6.1英寸屏幕,支持60Hz屏幕刷新,支持HDR显示,P3广色域小米手机爆降800 优惠力度空 ...
- 010_MySQL
目录 初识MySQL 为什么学习数据库 什么是数据库 数据库分类 MySQL简介 Windows安装MySQL 安装建议 软件下载 安装步骤 安装SQLyog 下载安装 连接数据库 简单操作 命令行连 ...
- Flutter 基础组件:图片和Icon
前言 Flutter中,可以通过Image组件来加载并显示图片,Image的数据源可以是asset.文件.内存以及网络. ImageProvider 是一个抽象类,主要定义了图片数据获取的接口load ...