到目前为止,到底有没有一种防爬虫但是不会误伤谷歌爬虫的完美方法?

2017-01-18 11:28:05 +08:00
 alwayshere

自己一个网站,都是自己辛辛苦苦用键盘敲出来的数据,纯原创站,自己很用心在做这个网站,但是说实话,一个新手都可以用火车头不费吹灰之力把我的网站数据全爬过去,其实如果不是谷歌的话,我想了很多种防爬虫的手段,比如:

  1. js 生成数据,抓取 phantomjs 之类的 headless 浏览器的特征码, ban 掉它
  2. 同一个 ip 短时间内抓取数据太多, ban 掉它
  3. 没有 header 之类的访问, ban 掉它
  4. 检测客户端访问抓取 css 文件没有,没有的话就 ban 掉它
  5. 客户端 js 加密一个 token ,和服务器端公用一个 key 来解密,每次提交都要验证这个 token
  6. 学习Flickr一样,任何搜索结果只显示4000个结果,避免一次性清仓大处理被爬虫抓完了,后台把sitemap所有数据提交给谷歌,但是貌似这样会不会伤及SEO,毕竟内链之间就断开了

感觉这些合在一起基本可以过滤大部分新手了,但是,这些很有可能把可爱的谷歌爬虫给误伤了,现在服务器端验证 header 为 Googlebot 貌似也不起任何作用,都可以伪造,大家有哪些防爬虫但是不会误伤谷歌爬虫的完美方法?讨论一下,谢谢

7362 次点击
所在节点    程序员
46 条回复
ihuzhou
2017-01-18 16:02:07 +08:00
@golmic 兄台爬过网易云的吗,我被里面的加密难住了
grayon
2017-01-18 16:57:53 +08:00
您使用的 IP 访问网站过于频繁,为了您的正常访问,请先输入验证码
hyuwang
2017-01-18 17:07:14 +08:00
可以数据不要放全
让浏览引擎索引到关键字和标题就行了

用户浏览的时候多点一下才能拿到全部的 content
感觉现在挺多国外网站这么干
TaMud
2017-01-18 17:50:09 +08:00
难道 你们不知道 有 selenium 这东西???
rockivy
2017-01-18 18:05:08 +08:00
插个题外话,以前还真的爬过 canvas 画的数据。比如下面这个 URL 里面:

http://v.qq.com/datacenter/0dfpyvfa7tp0ewe.html

一些具体的数字就是用 canvas 画出来的。

办法就是先截图,然后调用 OCR 识别图片上面的数字。
当时用的 tesseract ,对数字的识别准确率还蛮高的(当然对图片有些简单的放大和二值化处理之后,准确率才上来的)。

不过,上面这个腾讯的视频指数页面,有些别的反爬处理,很难搞,最终还是放弃了。
shiny
2017-01-18 18:08:17 +08:00
不知道有没有人可以通过法律角度讲讲可以怎么做。
lan894734188
2017-01-18 18:09:22 +08:00
把 Google 的 as 添加到白名单
lgpqdwjh
2017-01-18 18:24:07 +08:00
我们是实现一个 漏桶 来处理这样的事情的, 针对流量分析一下 ip 均匀请求量 自动调整漏桶大小, 如果爬的比较猛就直接 ban 掉 ip , 值得一提的是 这样的方法防不住有心的爬虫, 总的来讲我们是想挡住恶意的高频请求用户

至于完全的防爬, 我觉得是不可能懂, 人家真想要你的数据, 办法多的是。。
techmoe
2017-01-18 18:28:13 +08:00
那估计就只能靠 ip 识别了
yxzblue
2017-01-18 19:04:14 +08:00
楼主是产品?
golmic
2017-01-18 19:09:23 +08:00
@ihuzhou 我去试试看,能详细点告诉我爬哪些项目吗?
dsg001
2017-01-18 19:26:58 +08:00
只担心 googlebot ,不担心真实用户吗,在乎 seo 就别在乎爬虫,只要爬虫直接去爬 google 缓存,再强的反爬虫策略也没用
ioioioioioioi
2017-01-18 19:30:29 +08:00
谷歌蜘蛛可以判断 ip 的 hostname
professorz
2017-01-18 20:07:38 +08:00
客户端生成 cookie 二次请求才呈现数据 很多航司网站是这样做的 你可以找一下相应的工具
misaka20038numbe
2017-01-19 00:04:00 +08:00
没有,再厉害你能把用户的屏幕给关了吗?所以你可以换一种方式,比如让文章个性化,让别人一看就知道是你.
WildCat
2017-01-19 00:17:28 +08:00
不可能,我可以模拟得你监测不出来。
Keywords:
- nightmare
- phantom
- selenium
samuel
2017-01-19 00:32:25 +08:00
并没有,只要正常的用户能看到,爬虫就能爬到,只能尽量在不损害正常用户的体验情况下,提高爬虫获取数据的成本
llhh
2017-01-19 09:46:47 +08:00
没有。
ihuzhou
2017-01-19 10:12:14 +08:00
@golmic 就是歌手最热歌曲的页面,想获得 songId
libook
2017-01-19 10:24:42 +08:00
前端分两套,正常业务页面和 SEO 页面,把能暴露出去的且希望搜索引擎爬到的防盗 SEO 页面里,正常页面做好防爬措施,使用流量技术+搜索引擎配置的方式引导搜索引擎去爬 SEO 页面。

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

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

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

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

© 2021 V2EX