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. 使用第三方識別,即那些圖形驗證碼的在綫識別網站,不過可能需要收費。

 

最新文章

  1. 压力测试 webbench
  2. HBase基础和伪分布式安装配置
  3. Orchard源码分析(5.2):BeginRequest事件处理(DefaultOrchardHost.BeginRequest方法)
  4. PHP CI 查询条件大全
  5. VC编程技巧:IE控件的高级用法
  6. Delphi 7下使用Log4Delphi 0.8日志组件
  7. iOS关于sqlite3操作
  8. js拖动层
  9. Create local metadata resource of yum
  10. jquery源码 DOM加载
  11. 如何共享数据?- 每天5分钟玩转 Docker 容器技术(41)
  12. Ubuntu中,wxpython的TextCtrl引发的error:_pixman_log_error
  13. MySQL的log_bin和sql_log_bin 的区别
  14. java io系列07之 FileInputStream和FileOutputStream
  15. ranch 源码分析(二)
  16. BZOJ 3007 [SDOI2012]拯救小云公主 - 对偶图 + 并查集
  17. BMap:WEB 服务API
  18. 【Zookeeper】源码分析之持久化(二)之FileSnap
  19. Esper学习之七:EPL语法(三)
  20. vue v-model 表单控件绑定

热门文章

  1. 彻底理解Spring如何解决循环依赖
  2. 【python爬虫】一个简单的爬取百家号文章的小爬虫
  3. matlab双坐标轴设定
  4. vuejs2.0使用Sortable.js实现的拖拽功能( 转)
  5. Java对象赋值与引用
  6. Android——spinner控件实现读取xml资源,省、市两级互动
  7. Task1:知识图谱介绍(1天)
  8. JavaScript 内存详解 & 分析指南
  9. 【转】借助LVS+Keepalived实现负载均衡
  10. 剑指offer 面试题7:重建二叉树