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

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 貌似也不起任何作用,都可以伪造,大家有哪些防爬虫但是不会误伤谷歌爬虫的完美方法?讨论一下,谢谢

7988 次点击
所在节点    程序员
46 条回复
breeswish
2017-01-19 10:33:29 +08:00
只要网站还允许普通人访问就阻止不了(定向开发的)爬虫,只能提高门槛。

模拟浏览器行为绕过客户端验证:楼上 WildCat 说了
模拟网络绕过 IP 验证:代理池

另外也可以直接爬谷歌 :)
lisir
2017-01-19 17:08:15 +08:00
咋不放出网站
param
2017-01-19 18:58:42 +08:00
Google 访问的时候自带了 user agent ,写明是 Google bot ,但是,如果爬虫知道你的规则并且伪装 Google bot 的话。。。。
param
2017-01-19 18:59:34 +08:00
Google 没有一种机制可以验证 Google bot 的身份吗?不如说自带给 token ,需要验证这个 token 才知道它是不是 bot
wjm2038
2017-01-20 02:16:55 +08:00
@param 反查 ip ,谷歌官方做法
zyjhkd
2018-08-09 07:57:38 +08:00
你好,这样的程序 好做吗?留个联系方式哈,打包出售吗?

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

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

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

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

© 2021 V2EX