对爬虫的限制
不当家不知道柴米贵
以前用彪悍的服务器用习惯了,还真没有资源窘迫的时候
这个月还早,显然现有资源已经撑不到月底了
先把常用的600多K文件挪到了七牛的云存储上
结果一天就跑了2G的流量,这么算再跑5天就废了
得,偷懒不成,老老实实分析日志
搜索spider,每页50条,竟然有好多好多页的记录:
看来是被各家的爬虫给吃掉了。
解决方法
先用robots.txt屏蔽掉国外的蜘蛛:
Disallow: /
User-Agent: Ezooms
Disallow: /
robots的生效需要时间,在生效之前,可以用sae的应用防火墙屏蔽一些IP(非sae用户参考此文)
不过防火墙是全局的,如果想针对某一个目录做限定,可以通过config.yaml来实现。
- hostaccess: if(path ~ "/xxx/xxxx/") deny "123.125.71.12 , 123.125.71.31 , 123.125.71.47 , 123.125.71.95 , 220.181.108.76 , 220.181.108.87, 220.181.108.123, 220.181.108.168 , 220.181.108.105 , 220.181.108.109 , 220.181.108.156 , 220.181.108.160 , 220.181.108.99 , 220.181.108.115 , 220.181.108.139 , 220.181.108.143 , 220.181.108.144 , 220.181.108.163 , 220.181.108.159 , 183.60.212.134 , 183.60.213.39 , 183.60.213.29 , 183.60.214.119"
如上所示,一个IP,一个IP的填毕竟太烦了(还要注意空格!)
时间不够的童鞋(其实是懒)直接干掉整个ip段了事
- hostaccess: if(path ~ "/xxx/xxxx/") deny "123.125.71.0/24 , 220.181.108.0/24 , 183.60.214.0/24 , 183.60.215.0/24"
然后再对漏网之鱼,跳回robots.txt,让他们好好补课。
- rewrite: if(path ~ "/xxx/xxx/" && in_header["User-Agent"] ~ "AhrefsBot" ) goto "http://uicss.cn/robots.txt"
如果是单个的php文件,懒得改config.yaml的,也可以用php搞,返回空白页:
if(substr_count($useragent,"spider")){exit();}
不结尾了,写结尾太麻烦。
总之,问题解决了。
建议继续学习:
- 使用python爬虫抓站的一些技巧总结:进阶篇 (阅读:12114)
- 使用python/casperjs编写终极爬虫-客户端App的抓取 (阅读:11861)
- 使用python/casperjs编写终极爬虫-客户端App的抓取 (阅读:9524)
- 使用python爬虫抓站的一些技巧总结:进阶篇 (阅读:6418)
- 简析搜索引擎中网络爬虫的搜索策略 (阅读:5991)
- 聚焦爬虫:定向抓取系统的实现方法 (阅读:4847)
- 定向抓取漫谈 (阅读:4452)
- 互联网网站的反爬虫策略浅析 (阅读:4140)
- Google 网页爬虫报告无法连接站点解决办法 (阅读:1232)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:崔凯 来源: 崔凯
- 标签: 爬虫
- 发布时间:2014-11-23 21:10:09
- [55] IOS安全–浅谈关于IOS加固的几种方法
- [53] 如何拿下简短的域名
- [52] 图书馆的世界纪录
- [52] android 开发入门
- [50] Go Reflect 性能
- [50] Oracle MTS模式下 进程地址与会话信
- [48] 【社会化设计】自我(self)部分――欢迎区
- [47] 读书笔记-壹百度:百度十年千倍的29条法则
- [36] 程序员技术练级攻略
- [29] 视觉调整-设计师 vs. 逻辑