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———反爬蟲的一些基本應對方法的更多相关文章

  1. Scrapy反爬

    1,随机更换 user-agent: 将足够多的user-agent放在settings中,在parse方法中调用 缺点:每一个request中都要调用这个方法 这个是scrapy的流程图. 既然每一 ...

  2. Python Scrapy反爬虫常见解决方案(包含5种方法)

    爬虫的本质就是“抓取”第二方网站中有价值的数据,因此,每个网站都会或多或少地采用一些反爬虫技术来防范爬虫.比如前面介绍的通过 User-Agent 请求头验证是否为浏览器.使用 JavaScript ...

  3. 使用scrapy爬虫,爬取17k小说网的案例-方法二

    楼主准备爬取此页面的小说,此页面一共有125章 我们点击进去第一章和第一百二十五章发现了一个规律 我们看到此链接的  http://www.17k.com/chapter/271047/6336386 ...

  4. 关于使用scrapy框架编写爬虫以及Ajax动态加载问题、反爬问题解决方案

    Python爬虫总结 总的来说,Python爬虫所做的事情分为两个部分,1:将网页的内容全部抓取下来,2:对抓取到的内容和进行解析,得到我们需要的信息. 目前公认比较好用的爬虫框架为Scrapy,而且 ...

  5. 第三百四十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—cookie禁用、自动限速、自定义spider的settings,对抗反爬机制

    第三百四十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—cookie禁用.自动限速.自定义spider的settings,对抗反爬机制 cookie禁用 就是在Scrapy的配置文件set ...

  6. 第三百四十五节,Python分布式爬虫打造搜索引擎Scrapy精讲—爬虫和反爬的对抗过程以及策略—scrapy架构源码分析图

    第三百四十五节,Python分布式爬虫打造搜索引擎Scrapy精讲—爬虫和反爬的对抗过程以及策略—scrapy架构源码分析图 1.基本概念 2.反爬虫的目的 3.爬虫和反爬的对抗过程以及策略 scra ...

  7. 二十四 Python分布式爬虫打造搜索引擎Scrapy精讲—爬虫和反爬的对抗过程以及策略—scrapy架构源码分析图

    1.基本概念 2.反爬虫的目的 3.爬虫和反爬的对抗过程以及策略 scrapy架构源码分析图

  8. scrapy——4 —反爬措施—logging—重要参数—POST请求发送实战

    scrapy——4 常用的反爬虫策略有哪些 怎样使用logging设置 Resquest/Response重要参数有哪些 Scrapy怎么发送POST请求 动态的设置User-Agent(随即切换Us ...

  9. Scrapy中的反反爬、logging设置、Request参数及POST请求

    常用的反反爬策略 通常防止爬虫被反主要有以下几策略: 动态设置User-Agent(随机切换User-Agent,模拟不同用户的浏览器信息.) 禁用cookies(也就是不启用cookies midd ...

随机推荐

  1. Java并发包之 CopyOnWriteArrayList

    大家在学习Java的过程中,或者工作中,始终都绕不开集合.在单线程环境下,ArrayList就可以满足要求.多线程时,我们可以使用CopyOnWriteArrayList来保证数据安全.下面我们一起来 ...

  2. 说说在 Python 中如何快速复制序列

    1 基本用法 把序列乘以一个整数,就会产生一个新序列.这个新序列是原始序列复制了整数份,然后再拼接起来的结果. l=[1,2,3] l2=l * 3 logging.info('l2 -> %s ...

  3. WPF 中的相关样式

    <Image Name="icon" Width="40" Height="40"  Source="/Resources/ ...

  4. 浅析Python装饰器

    1.什么是装饰器 在介绍装饰器之前,我们先来思考一个问题:使用Python语言进行程序设计时,如果我们想扩展一个函数的功能,一般会怎么做呢? 比如,有一个名为print_info函数,当前该函数内只做 ...

  5. 【Azure App Service】C#下制作的网站,所有网页本地测试运行无误,发布至Azure之后,包含CHART(图表)的网页打开报错,错误消息为 Runtime Error: Server Error in '/' Application

    问题描述 C#下制作的网站,所有网页本地测试运行无误,发布至Azure之后,包含CHART(图表)的网页打开报错,错误消息为 Runtime Error: Server Error in '/' Ap ...

  6. sql优化的几种方式

    一.为什么要对SQL进行优化 我们开发项目上线初期,由于业务数据量相对较少,一些SQL的执行效率对程序运行效率的影响不太明显,而开发和运维人员也无法判断SQL对程序的运行效率有多大,故很少针对SQL进 ...

  7. 686. Repeated String Match判断字符串重复几次可以包含另外一个

    public static int repeatedStringMatch(String A, String B) { //判断字符串a重复几次可以包含另外一个字符串b,就是不断叠加字符串a直到长度大 ...

  8. java判断路径是文件夹还是文件

    当给定一个路径没有后缀的时候,很难分辨代码是文件还是文件夹,如下图: 我在桌面建立了一个名为one的文件,路径为:/Users/XXXXXX/Desktop/one java代码如下: import ...

  9. Pytest测试框架(二):pytest 的setup/teardown方法

    PyTest支持xUnit style 结构, setup() 和 teardown() 方法用于初始化和清理测试环境,可以保证测试用例的独立性.pytest的setup/teardown方法包括:模 ...

  10. Daphile FAQ -- 官方文档译文 [原创]

    Daphile FAQ 英文原文:https://www.daphile.com/download/FAQ.txt 采集日期:2021-01-03 常见问题解答:(FAQ) Q1:没有声音.Daphi ...