python - 使用 Python 抓取和解析 Google 搜索结果

标签 python screen-scraping web-scraping google-search-api

我问了一个 question关于实现抓取和保存网页的总体思路。 原问题的一部分是:如何从互联网上抓取并保存大量的“关于”页面。

经过一些进一步的研究,我在抓取和解析方面有了一些选择(列在底部)。

今天,我遇到了另一个 Ruby discussion关于如何从谷歌搜索结果中抓取。这为我的问题提供了一个很好的替代方案,可以节省爬行部分的所有工作。

新的问题是:在 Python 中,抓取给定关键字的 Google 搜索结果,在本例中为“About”,最后获取链接以进行进一步解析. 继续使用的方法和库的最佳选择是什么? (以易于学习和易于实现为衡量标准)。

附言在 this website ,一模一样的东西实现了,但是关闭了,要钱多结果。如果没有可用的开源代码,我宁愿自己做,同时学习更多 Python。

哦,顺便说一句,如果有的话,从搜索结果中解析链接的建议会很好。尽管如此,易于学习和易于实现。刚开始学习Python。 :P


最终更新,问题已解决。使用 xgoogle 的代码,请阅读以下部分中的注释以使 xgoogle 正常工作。

import time, random
from xgoogle.search import GoogleSearch, SearchError

f = open('a.txt','wb')

for i in range(0,2):
    wt = random.uniform(2, 5)
    gs = GoogleSearch("about")
    gs.results_per_page = 10
    gs.page = i
    results = gs.get_results()
    #Try not to annnoy Google, with a random short wait
    time.sleep(wt)
    print 'This is the %dth iteration and waited %f seconds' % (i, wt)
    for res in results:
        f.write(res.url.encode("utf8"))
        f.write("\n")

print "Done"
f.close()

Note 关于 xgoogle(下面由 Mike Pennington 回答): 它的 Github 的最新版本默认情况下已经无法使用,可能是由于 Google 搜索结果的变化。该工具主页上的这两个回复 (a b) 提供了解决方案,目前仍在使用此调整。但也许有一天它可能会由于 Google 的更改/阻止而再次停止工作。


目前已知的资源:

  • 对于抓取,Scrapy似乎是一个流行的选择,一个名为 ScraperWiki 的 webapp很有意思还有another project提取它的库以供离线/本地使用。 Mechanize在不同的讨论中也被多次提出。

  • 用于解析 HTML,BeautifulSoup似乎是最 流行的选择。当然。 lxml也是。

最佳答案

您可能会发现 xgoogle有用...您似乎要求的很多东西都在那里...

关于python - 使用 Python 抓取和解析 Google 搜索结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7746832/

相关文章:

javascript - 如果没有包含特定内容的 iframe 元素,recaptcha 不会显示在 phantomjs 中

python - 在列后的矩阵列中查找最小值和值的索引

python - 如何在 Windows 上引用路径? (类似于 shlex.quote)

python - 处理可能的导入错误类型

ruby-on-rails - 如何截屏我的youtube视频供稿?

c# - 在 C# 中屏幕抓取大型机屏幕*无需*第 3 方实用程序

c# - 包含 AJAX 按钮的屏幕抓取网页

python - Beautiful Soup 试图获取有关 <code>/<-- 评论标签的信息

python - 从以流式方式加载数据的网站抓取网络数据

python - 从命令行调用 MAC/Linux 上的 python 脚本 - 传递参数