1. 聚能聊>
  2. 话题详情

说出你与爬虫的相爱相杀史吧

爬虫最早听到的时候还是刚做网站需要被搜索引擎收录的时候,网站需要被搜索引擎爬虫给抓取才能被收录,这时候就需要做友链和提交链接去引爬虫来进行访问。然后在使用一些 Web应用防火墙 的时候也知道了有一些恶意攻击会使用模拟搜索引擎爬虫的方式来对网站进行攻击。 这或许是我对爬虫使用的第一次相爱相杀。

但随着技术的不断发展,爬虫技术也不仅仅是被搜索引擎给广泛应用了。特别在 Python 领域,有非常多的爬虫现成库可以用,让我们可以非常快的利用爬虫实现一些用途。例如像一些企业信息查询系统这样的应用,就是通过抓取工商注册信息进行一定的数据的关联后,可以让我们获得远超出简单的公司注册信息的内容。 也有人用爬虫给知乎来了个大数据分析,分析出知乎的性别分别和点赞数、粉丝排行榜等等。 还有地域租赁平台的成交房数据分析,让人更清楚宏观的房屋交易趋势。

image

image

但是,自然也有人恶意使用爬虫,比如说很多人使用爬虫技术进行文章的转载,以及大量抓取图片网站的图片不仅没有给网站带来有效流量反而大大加重了网站的带宽负担,这样的爬虫不像搜索引擎爬虫可以对爬去压力进行设置,它是一种无节制的爬取。当然爬虫还可以放到商业竞争中去给友商造成访问障碍,如果企业要组织一个瞬时大流量的活动,不少友商甚至也会通过一些途径带去大量爬虫请求,来一波“雪上加霜”

image

所以不少企业也有进行一些爬虫的防御措施,比如之前有说道的爬取知乎的大佬其实也是蛮牛的,很多大量产品 PGC、UGC 的网站都会采取一定的反爬虫措施,随着爬虫技术的进步,单单屏蔽 UA 或者 IP 早已无法妥善处置了,所以说爬虫这东西还真的是让人又爱又恨。

那我们就来讨论一下

1. 说出你与爬虫的相爱相杀史吧(SEO经验、数据抓取、爬虫防御等等都可以)

2. 你怎么看待非搜索引擎的爬虫对网站的抓取行为?

3. 你有爬虫攻击经历吗?是怎么解决的?

下面就送上一篇聊主所在的 卓见技术团队 分享的使用阿里云的 Web应用防火墙 进行爬虫防御的案列介绍以及其他的爬虫攻击解决方案: 由大量爬虫请求引起的带宽占满事件分析和解决方案

参与话题

奖品区域 活动规则 已 结束

  • 奖品一

    阿里云代金券 x 2

  • 奖品二

    手机话费 x 3

  • 奖品三

    多功能工具箱 x 1

15个回答

1

麦老师 已获得多功能工具箱 复制链接去分享

说出你与爬虫的相爱相杀史吧(SEO经验、数据抓取、爬虫防御等等都可以)
你有爬虫攻击经历吗?是怎么解决的?

去年的时候吧,有个YisouSpider蜘蛛,不断的在对网站进行爬取,导致网站负载不断飙升,后来直接屏蔽了整个YisouSpider。
nginx的屏蔽方法,判断ua头,返回503:
if ($http_user_agent ~* YisouSpider){
return 503;
}
当然不止这个蜘蛛,其他的一些蜘蛛有时候也会大量的进行爬取,可以根据自身情况,通过Nginx http_limit_req模块来限制爬取

你怎么看待非搜索引擎的爬虫对网站的抓取行为?

也有一些采集,伪装成爬虫,量一多就当当于被cc了,导致网站不正常,当然这些都是通过log来分析的,所以网站服务器要开启log。
说下防护,无非就是限制请求数和连接数,如果前端你使用的是nginx的话,可以通过http_limit_conn和http_limit_req模块来实现。
也可以安装ngx_lua_waf,是一个基于ngx_lua的web应用防火墙,也很好用。

关于nginx安装ngx_lua_waf防护可以看这篇文章:https://yq.aliyun.com/articles/561967?spm=

补充,云服务器的话可以使用云盾Web应用防火墙:https://www.aliyun.com/product/waf?spm=

麦老师 回复

来个工具箱可好

妙正灰 回复

YisouSpider 是典型的恶意爬虫 UA 了,基本上我新站都是直接屏蔽这些爬虫的

妙正灰 回复

我看看有没有其他的回复,打赏也该按质量走嘛

浮生递归 回复

不玩硬件,你要工具箱干啥

麦老师 回复

新家装修用得到啊

浮生递归 回复

自己装修!

麦老师 回复

上周刚把墙刷了

评论
1

微wx笑 已获得手机话费 复制链接去分享

1. 说出你与爬虫的相爱相杀史吧(SEO经验、数据抓取、爬虫防御等等都可以)
要做一些数据的统计分析,自己又什么都没有,那怎么办?
作为收集采集数据的 工具,爬虫是必须要用的,必须会用的。
一些常用的爬虫框架,如:scrapy,jsoup,HAP,但它们并不能处理JS,
这就要再结合一些其它技术框架,如:webkit或者xmi_runner(firefox)、selenium、PhantomJs,
但这通常都是要运行一个浏览器内核,所以性能方面是个大问题,
不过不管怎么说,肯定比人要快吧。

2. 你怎么看待非搜索引擎的爬虫对网站的抓取行为?
不遵守 robots 协议,不考虑对方网站负载的爬取行为都是耍流氓!

3. 你有爬虫攻击经历吗?是怎么解决的?
不会引发生产事件——直接拦截
可能引发生产事件——给假数据(也叫投毒)
此外还有一些发散性的思路。例如是不是可以在响应里做SQL注入?毕竟是对方先动的手。不过这个问题法务没有给具体回复,也不容易和她解释。因此暂时只是设想而已。
1、技术压制
我们都知道,DotA AI里有个de命令,当AI被击杀后,它获取经验的倍数会提升。因此,前期杀AI太多,AI会一身神装,无法击杀。
正确的做法是,压制对方等级,但是不击杀。反爬虫也是一样的,不要一开始就搞太过分,逼人家和你死磕。
2、心理战
挑衅、怜悯、嘲讽、猥琐。
以上略过不提,大家领会精神即可。
3、放水
这个可能是是最高境界了。
程序员都不容易,做爬虫的尤其不容易。可怜可怜他们给他们一小口饭吃吧。没准过几天你就因为反爬虫做得好,改行做爬虫了。

妙正灰 回复

这个专业了 赞

微wx笑 回复

哈哈,学来之笔

评论
0

浮生递归 已获得手机话费 复制链接去分享

这话题不错,不如把“有非常多的爬虫现成库” 也发出来大家分享下~

1 说出你与爬虫的相爱相杀史吧(SEO经验、数据抓取、爬虫防御等等都可以)
以前建门户网站,天天盯着自己写的文章访问量统计看,后来看到访问数量上来了,很开心。然后去查了下记录,全是爬虫!瞬间心碎。后来想防爬虫,把搜狗什么的之类自己感觉没什么用的都防掉。然后发现要在ROBOTS里加一堆的东西,还要定期更新,想想就算了。反正现在打开速度也不慢。苍蝇再小也是肉。
再后来,我也想自己写个采集,采集到自己的网站上,就不用老人工更新了。于是……就发现自己不会写爬虫,看到别人写的爬虫里代码一大堆一大堆的……放弃。

2 你怎么看待非搜索引擎的爬虫对网站的抓取行为?
如果轻轻爬,这个没办法。但是影响到网站速度的话,抱歉,肯定是要屏蔽的。这也是为什么网站上的信息越来越多的出现*号之类的标记吧。以前像出租网站上面的上面,都是直接显示全号的,现在都星号了。还有图片上也越来越多的水印,都是因为爬虫吧。如果网站上展示的信息,已经是数据库里全部的字段的话,那被人爬一下,跟被脱库没什么区别了。

3 你有爬虫攻击经历吗?是怎么解决的?
看日志好像有吧。不过网站速度没影响啊,就无所谓了,反正浪费的是服务器商的带宽,自己只要速度正常就OK。

终于又把所有的话题都回答完了~奖品特别少的除外

妙正灰 回复

我没看到过有星号的情况诶

浮生递归 回复

去赶集网上找租房信息,显示的应该也都是带星号的手机号,登录后可以查看全号

cjsoldier 回复

确实。

评论
1

沙漠的热情 已获得阿里云代金券 复制链接去分享

1.说出你与爬虫的相爱相杀史吧(SEO经验、数据抓取、爬虫防御等等都可以)
使用过织梦cms的采集功能,一般也就采集几百篇文章充实下网站内容。

2.你怎么看待非搜索引擎的爬虫对网站的抓取行为?
自然是很讨厌,可是自己也曾经采集其他网站的文章,哎,事物总有两面吧!

3.你有爬虫攻击经历吗?是怎么解决的?
有吧!这世道只要你的网站上线,谁还不遭受点攻击呢。可能是自己安全防护知识欠缺没有发现吧!
我想如果遭遇这种情形,最简单的办法就是提交工单请阿里工程师帮忙喽!

妙正灰 回复

理论上工单应该不负责用户使用这一块吧

沙漠的热情 回复

似乎可以从爬虫行径是否有主观恶意区分一下,无恶意的可以稍稍宽容一点,有恶意的就要“兵来将挡水来土掩”。

评论
0

cjsoldier 已获得阿里云代金券 复制链接去分享

1.说出你与爬虫的相爱相杀史吧(SEO经验、数据抓取、爬虫防御等等都可以)
一开始爬的非常好,没有任何阻拦。没过多久网站不愿意了,给了一个非常不友好的验证码。在我看来那验证码就像是一个警告,根本不是验证码。
很多网站都有防爬的功能。为了避免夜长梦多我一般都直接上无头浏览器了。因为你不知道什么时候请求里少带了一个参数。还有烦人的cookies。有的网页还是用js动态生成的。
直接上浏览器省心。
可喜的是无头浏览器也要出标准了,欢呼吧小伙伴。

2. 你怎么看待非搜索引擎的爬虫对网站的抓取行为?
按理说爬之前应该先看看人家网站的robots.txt。我看过很多网站的robots,额,几乎都是空的。
我的观点:既然网页内容人人都可以看,爬一下也没什么吧。只是有一点,如果爬,请轻爬。
对人家网站温柔一点,如果太粗鲁了,你能怪人家给你来个验证码吗?

3. 你有爬虫攻击经历吗?是怎么解决的?
没有。我只想建议做网站的小伙伴们,加个防爬机制吧。很多新手都是我眼闭着爬,才不管网站受不受得了。本人以前也是这么干的。现在想想人家给个验证码算是客气的了。

妙正灰 回复

如果爬,请轻爬,写的不错

cjsoldier 回复

☻谬赞谬赞。

puzi0315 回复

我自己搭建站点,自己开发爬虫抓取指定的网站内容。。。哈哈

cjsoldier 回复
回复@puzi0315:

厉害了。

评论
0

pwdking 已获得手机话费 复制链接去分享

1. 说出你与爬虫的相爱相杀史吧(SEO经验、数据抓取、爬虫防御等等都可以)

做应用抓取,最后搞的 Apple 服务器压力不小,最后一起开了个电话会议,指定了专门的 header,不做反爬虫,让我们抓。
伴随着,整合全球代理,代理按地域,按业务都有管理。

2. 你怎么看待非搜索引擎的爬虫对网站的抓取行为?

有好有坏,说说好的点,资源整合,提供更好的服务。

3. 你有爬虫攻击经历吗?是怎么解决的?

我们专做数据抓取,也有平台将数据提供给大众,抓我们的人很多,但最好的办法也就 rate limit,虽然有代理,但是开放资源就是如此呀,根据业务调整 rate limit 即可。

妙正灰 回复

哈哈哈,就喜欢看苹果吃瘪的样子

评论
0

aoteman675 复制链接去分享

  1. 说出你与爬虫的相爱相杀史吧(SEO经验、数据抓取、爬虫防御等等都可以)
    抓校园网站的信息,然后搞一个叫校园通的一个软件,专门对接了其他学校的门户网站,然后再模拟再模拟登陆进去。爬虫这个很难防的,代理的防都防不住。
  2. 你怎么看待非搜索引擎的爬虫对网站的抓取行为?
    资源的互相利用嘛,特别是服务类的网站,资源就多了,可能抓取了不止几家的网站内容。
  3. 你有爬虫攻击经历吗?是怎么解决的?
    坏事不能做,就爬一爬那些小企业静态网站,爬一些内容和图片下来。如果是我的话,做网站,肯定用OSS做分离,然后对文件图片加个防盗链,就算是别人爬来引用了耶不行。
妙正灰 回复

防盗链还得做权鉴

评论
0

helixcs 复制链接去分享

其实爬虫的本质也就是最大程度上模拟浏览器,那反爬虫也就是最大程度上利用浏览器的特性。
比如说html5中的canvas ,js渲染,使用blob来处理静态资源,http only, 前后端校验 都是反爬虫常用的手段。

0

1095622481629932 复制链接去分享

我会先百度找出对应解决方式。 访问数据获取。采集访问数据,用来做爬虫分析的数据源 爬虫封禁。当找到爬虫后,想办法去阻断它后续的访问 爬虫分析。示例通过简单策略来分析出爬虫@阿里云客户满意中心[/cp]

0

1095622481629932 复制链接去分享

我会先百度找出对应解决方式。 访问数据获取。采集访问数据,用来做爬虫分析的数据源 爬虫封禁。当找到爬虫后,想办法去阻断它后续的访问 爬虫分析。示例通过简单策略来分析出爬虫@阿里云客户满意中心[/cp]

0

1130398559819046 复制链接去分享

我做过几十款数据采集软件。全自动化,什么公众号,视频接口,文章系统,地图数据,也有启用代理IP的。但看到笔者说用一堆数据可以分析出新的匪夷所思的数据时。我想着用爬虫配合SQL数据库进行数据关系的分析。好像可以做出更多的好东西。

0

快递 复制链接去分享

你怎么看待非搜索引擎的爬虫对网站的抓取行为?
很讨厌,

0

helixcs 复制链接去分享

利用http头里的gzip自动解压,传一个zip bomb ~

0

swpu_cxm 复制链接去分享

膜拜你们这些dalao,真的好厉害!看来我得加紧学习了

0

1975821085626574 复制链接去分享

你好