Python - 简单方法抓取谷歌,下载指定搜索的前N个结果(完整.html文档)?

12 投票
3 回答
8366 浏览
提问于 2025-04-16 13:48

有没有简单的方法可以抓取谷歌的搜索结果,并把前N个(比如1000个)网页的文本(仅文本)写下来?

举个例子,假设你搜索“坏狼”这个词,然后下载前1000个结果的文本——也就是说,实际上只下载这1000个网页的文本内容(而不是整个网站)。

我在想,这是不是可以用urllib2这个库?我用的是Python 3.1,如果这有帮助的话。

3 个回答

3

如前所述,抓取谷歌的数据是违反他们的服务条款的。不过,这可能不是你想要的答案。

有一个PHP脚本可以很好地抓取谷歌的数据:http://google-scraper.squabbel.com/ 你只需要输入一个关键词和想要的结果数量,它就会返回所有相关的结果。然后你只需提取返回的链接,使用urllib或curl来获取网页的源代码,就完成了。

不过,除非你有超过100个代理服务器,否则最好不要尝试抓取谷歌。因为在尝试几次后,他们很容易就会暂时封禁你的IP地址。

4

可以看看 BeautifulSoup,这是一个用来从网页上抓取内容的工具。它对那些有点问题的网页非常包容,这样就能帮助你,因为并不是所有的网页都写得很规范。所以你应该能够:

3

想要通过程序获取Google的搜索结果,最正规的方式就是使用Google的自定义搜索API。正如icktoofay所说,其他一些方法,比如直接抓取搜索结果或者使用xgoogle这个模块,都是违反Google的服务条款的。因此,你可能会考虑使用其他搜索引擎的API,比如必应的API或者雅虎的服务

撰写回答