关于如何阻止网络爬虫

2015-03-17 09:36:56 +08:00
 1023400273
最近我一个网站被别人扒了,未避免广告嫌疑url就不贴了,不知道有什么有效的方法可以防止爬虫呢?

我想到的几个方法:
1、限制IP访问频率(无效,后台看不到有异常ip访问,我猜想爬虫大约五六分钟来一次)
2、用js动态加载数据内容(无效,爬虫支持js,且网站不利于seo)
3、抛出js异常,部分爬虫会无法解析(仅仅只是部分)

感觉爬虫和正常访问没啥区别,不知道有没有有效防止爬虫的方法

做爬虫的法律风险都有啥?感觉好像不太容易举证,求解答
9849 次点击
所在节点    程序员
52 条回复
kslr
2015-03-17 09:40:44 +08:00
没有完美的防守,只能提高爬虫的成本。

往文本里面随机版权信息,但是白色字体试试?
falcon05
2015-03-17 09:46:24 +08:00
斗智斗勇呗,哈哈
1023400273
2015-03-17 09:47:37 +08:00
@kslr
@falcon05 难道就这么跟他耗么
mgc
2015-03-17 09:49:56 +08:00
筛选搜索引擎IP,加入白名单
其他IP一律只能访问5个页面,超过2个页面需要登录
lingo233
2015-03-17 09:54:05 +08:00
你把12306的验证码系统搬来吧,访问一次输一次验证吗😜
lujiajing1126
2015-03-17 09:56:16 +08:00
做一套token系统
不过不能从根本上限制,因为爬虫可以尽可量模仿人的行为
1023400273
2015-03-17 10:03:03 +08:00
@mgc 不是搜索引擎,是一个竞争对手来扒的,他用的也不是固定ip,只允许访问5个页面的话可能会损失一部分流量,应该上面不会采纳这个意见的

@lingo233 这样估计就没流量了


@lujiajing1126 爬虫都可以模仿登录,token也应该无法根本解决
mgc
2015-03-17 10:05:18 +08:00
@1023400273 我自己就是做爬虫的,基本上是防不住的,办法已经告诉你了
1023400273
2015-03-17 10:10:25 +08:00
@mgc 感谢
lingo233
2015-03-17 10:12:52 +08:00
@1023400273 上面都说模仿人类行为了,不反人类怎么防:D
lujiajing1126
2015-03-17 10:14:14 +08:00
@1023400273 可以模仿登陆
但是有Token可以做限制,比如说某个接口一分钟请求次数,类似于令牌桶
增加爬虫的成本,如果爬虫爬的效率和人差不多。。那也没人会用了
1023400273
2015-03-17 10:22:50 +08:00
@lujiajing1126 如果我做一个爬虫更新自己网站的数据,我肯定模仿人类的点击呀,因为这个效率是可以接受,比如五分钟访问一次,如果太频繁访问肯定被墙的
lujiajing1126
2015-03-17 10:24:36 +08:00
@1023400273
那你还不如请个搬砖的帮你点呢
爬虫就是为了快速高效收集海量数据吧
1023400273
2015-03-17 10:25:21 +08:00
@mgc 不过话又说回来,你不担心会有法律风险吗,比如文字里面有版权,图片里面有水印啥的,哈哈
1023400273
2015-03-17 10:27:21 +08:00
@lujiajing1126 是高效,但是为了避免被墙,我还是会模拟人类行为的,如果觉得短时间内的数据不够,你可以同时爬多个同类型的网站
JamesR
2015-03-17 10:30:00 +08:00
加个验证码就行了,验证码过不了的IP自动进黑名单几天。
lujiajing1126
2015-03-17 10:31:19 +08:00
@1023400273
那当然可以,如果你有足够的钱买很多机器和IP,你甚至可以把它整个网站弄崩,就ddos
一般网络底层防ddos会考虑ip的数目来做网络包过滤
但是首先你得考虑你爬数据的成本和你自己制造这些数据哪个低一些。。
有钱,这些都不是事
xiaogui
2015-03-17 11:07:36 +08:00
上黄色反动内容,只对他的 ip 有效,然后被抓取以后,举报他。
哈哈,开玩笑啦。
fate
2015-03-17 11:11:19 +08:00
最重要的是要提高爬虫成本
cszhiyue
2015-03-17 11:30:56 +08:00
提高爬虫成本

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/177430

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX