从Google结果中抓取数据可以吗?
我想使用curl从Google获取结果来检测潜在的重复内容。 Google有被禁止的风险吗?
当您超出一定数量的请求时,Google最终会阻止您的IP。
谷歌不允许他们的TOS自动访问,所以如果你接受他们的条款,你会打破他们。
这就是说,我知道谷歌没有任何反对刮板的官司。 就连微软也刮起谷歌,他们用search引擎Bing来推动它。 他们在2011年被抓到红色的手 🙂
有两个选项来刮取Google的结果:
1)使用他们的API
-
你每小时可以发出大约40个请求,你只限于他们给你的东西,如果你想跟踪排名位置或真正的用户会看到什么,这并不是很有用。 这是你不能收集的东西。
-
如果你想要更多的API请求,你需要支付。
- 每小时60个请求的成本为每年2000美元,更多的查询需要定制交易。
2)刮去正常的结果页面
- 棘手的部分来了。 可以刮掉正常的结果页面。 Google不允许。
- 如果您的风险检测率高于每小时8个(从15个更新)的关键字请求,则高于10个/小时(从20更新)会使您的经验受阻。
- 通过使用多个IP您可以提高速度,所以有了100个IP地址,您可以每小时处理1000个请求。 (每天24k) (更新)
- 在http://scraping.compunect.com上有一个用PHP编写的开源search引擎刮板。它允许可靠地刮擦Google,正确parsing结果并pipe理IP地址,延迟等等。所以,如果你可以使用PHP,这是一个很好的kickstart,否则代码将仍然是有用的,以了解如何完成。;
3)或者使用一个抓取服务 (更新)
- 最近我的一个客户有一个巨大的search引擎的要求,但它不是“正在进行”,它更像是一个大的刷新每月。
在这种情况下,我找不到一个“经济”的自制解决scheme。
我在http://scraping.services上使用了这个服务。; 他们还提供开源代码,目前运行良好(刷新期间每小时有几千个结果页) - 缺点是这样的服务意味着你的解决scheme“绑定”到一个专业的供应商,好处是它比我评估的其他选项便宜很多(在我们的案例中速度更快)
- 减less对一个公司的依赖的一个select是同时做两个方法。 使用抓取服务作为数据的主要来源,并回到基于代理的解决scheme,如2)所述。
谷歌蓬勃发展在世界各地的网站…所以,如果这是“非法”,那么即使谷歌将无法生存..当然其他答案提到减轻谷歌IP块的方式。 另外一种探索避免validation码的方法可以随机抽取(dint try)。另外,我有一种感觉,如果我们提供新颖性或者对数据进行一些重要的处理,那么至less对我来说听起来很好……如果我们只是简单地复制一个网站..或以某种方式阻碍其业务/品牌…那么这是不好的,应该避免..最重要的是…如果你是一个创业公司,那么没有人会因为你是没有好处的..但如果你的整个前提是刮,即使你被资助,那么你应该考虑更复杂的方法…替代APIs..eventually..Google也不断释放(或depricating)领域的API,所以什么你现在要废止的可能是新版Google API发布的路线图。