0

我有需要使用某个 Google 搜索的第一个条目来修改的数据。此搜索必须使用不同的搜索关键字重复大约 300 000 次(每行)。

我为此使用 wget 编写了一个 bash 脚本。然而,在大约 30 个(同步)请求之后,我的查询似乎被阻止了。

正在连接到 www.google.com (www.google.com)|74.125.24.103|:80... 已连接。已发送 HTTP 请求,等待响应... 404 Not Found

未找到错误404。

我正在使用这个片段:

wget -qO- ‐‐limit-rate=20k --user-agent='Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0' "http://www.google.de/search?q=wikipedia%20$encodedString"

我依赖它来工作,所以我希望有人有经验。这不是一项常规工作,不需要快速完成 - 如果 300000 个请求需要一周以上的时间,甚至可以接受。

4

1 回答 1

1

谷歌不会让你这样做;它有一套相当先进的启发式方法来检测“非人类”的使用。如果你想用谷歌做一些自动化的事情,它会迫使你使用他们的 API。

除了将您的查询分布在非常大的一组客户端上(考虑到您有 3*10^5 个查询,并且在 3*10^1 之后被阻止,我会说大约 10,000 个),这既不可行也不真正按照正确的复杂性顺序,您将需要使用任何可自动化的 API。

幸运的是,谷歌提供了一个 JSON API,它可以更好地被脚本解析,所以看看https://stackoverflow.com/a/372​​7777/4433386

于 2015-03-05T01:04:23.010 回答