【吐槽】写了一个微小的福利网站,居然要被爬虫了
2017-08-21 22:38
253 查看
这几个月因为一些事情,抑郁了好久,最近终于要走出来,准备去找个新工作换换生活方式。但是又碰到了一件相当fuck的事情:自己写的小网站居然有人在爬。
其实被爬也无所谓,因为自己也是爬别人获得数据的【囧…】,但是网站的图片是放在cdn上的,cdn哗哗的在流…。
一开始我是想设置cdn的访问频率,我的cdn是走的七牛的,自己似乎不太能配置,只能找七牛的运营人员帮忙。虽然他们的回复速度很快,但感觉定制性差,但是还是自己动手,看看能不能在服务器配置。
通过看nginx日志,推测对方应该就是通过访问网页=>遍历分页=>解析img标签然后下载图片的,所幸目前对方目前没有用到ip代理池技术,也就那几个ip,封掉就好。
网上查了一些资料后,查封方法归纳如下:
创建这么一个文件,然后在nginx配置文件中include就可以了。
但是有个问题是目前我不清楚设置什么样的值比较好,这些值觉得太主管了,所以跳过。
经历这个事情后,发觉对图片文件名中加入随机数字(或者是md5值数字)是很有必要的。不然的话,对方完全可以跳过获取html这一步,直接通过命名规律,直接去取cdn上的数据。
不过话说回来,在我尝试过chrome headless之后,个人认为以后反爬虫只会越来越难,因为双方的投入悬殊太大。
其实被爬也无所谓,因为自己也是爬别人获得数据的【囧…】,但是网站的图片是放在cdn上的,cdn哗哗的在流…。
一开始我是想设置cdn的访问频率,我的cdn是走的七牛的,自己似乎不太能配置,只能找七牛的运营人员帮忙。虽然他们的回复速度很快,但感觉定制性差,但是还是自己动手,看看能不能在服务器配置。
通过看nginx日志,推测对方应该就是通过访问网页=>遍历分页=>解析img标签然后下载图片的,所幸目前对方目前没有用到ip代理池技术,也就那几个ip,封掉就好。
网上查了一些资料后,查封方法归纳如下:
blockips
deny 58.220.16.204; deny 222.71.6.118;
创建这么一个文件,然后在nginx配置文件中include就可以了。
geo
参考了 这儿对geo配置的举例 后,我在/etc/nginx/目录下创建一个文件存放bad_user的配置,然后在/etc/nginx/nginx.conf中include进来,就可以在下其他地方使用了。
/etc/nginx/blabla geo $bad_user { default 0; 222.71.6.118/32 1; }
/etc/nginx/nginx.conf http { .... # 其他配置 include /etc/nginx/blabla; }
if ($bad_user) { rewrite ^ http://ubuntu.cn99.com/ubuntu-releases/14.04/ubuntu-14.04.5-desktop-amd64.iso; }
nginx其他模块
也有一些帖子讲了通过配置limit及其他模块的方法来限制。但是有个问题是目前我不清楚设置什么样的值比较好,这些值觉得太主管了,所以跳过。
经历这个事情后,发觉对图片文件名中加入随机数字(或者是md5值数字)是很有必要的。不然的话,对方完全可以跳过获取html这一步,直接通过命名规律,直接去取cdn上的数据。
不过话说回来,在我尝试过chrome headless之后,个人认为以后反爬虫只会越来越难,因为双方的投入悬殊太大。
相关文章推荐
- HtmlParser 一个不错的网站爬虫工具
- 一个爬取法律网站的爬虫
- 注册一个网站,居然要提问!
- Python大神带你用30行代码打造一个网站,爬虫+web不一样的玩法
- 惊呆了,开发发布一个支持web和mobile端的企业网站居然可以这么简单!
- 价值上亿美元的网站,背后居然都只有一个程序员
- node.js做的一个简单爬虫,适合菜鸟级新手,针对无防爬措施的网站
- python学习总结----爬虫爬一个网站的图片
- Java爬虫实战(二):抓取一个视频网站上2015年所有电影的下载链接
- python采用 多进程/多线程/协程 写爬虫以及性能对比,牛逼的分分钟就将一个网站爬下来!
- 一个爬取lativ诚衣网站上模特穿搭图片的爬虫
- Java爬虫实战(一):抓取一个网站上的全部链接
- Java爬虫实战(一):抓取一个网站上的全部链接 推荐
- 一个爬虫分享网站
- 一个简单的爬虫程序,爬取网站的图片
- 昨天晚上写了个 Python 程序,下载了一个福利网站 5000 来张妹子图片
- 记一个爬虫加密网站算法的解密
- 一个简单的爬虫脚本--宅男福利
- 国内一个网站居然把SQL直接贴在源代码里面了