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

2024-04-23

我问了一个question https://stackoverflow.com/questions/7722876/web-mining-or-scraping-or-crawling-what-tool-library-should-i-use实现抓取和保存网页的总体思路。 原始问题的一部分是:如何从互联网上抓取并保存大量“关于”页面。

通过进一步的研究,我得到了一些继续进行抓取和解析的选择(列在底部)。

今天,我又遇到了一个红宝石讨论 https://stackoverflow.com/questions/1539798/scraping-parsing-google-search-results-in-ruby关于如何从 Google 搜索结果中抓取信息。这为我的问题提供了一个很好的替代方案,它将节省爬行部分的所有精力。

The new question是:在Python中,scrape谷歌搜索给定关键字的结果,在本例中为“关于”,最后获得进一步解析的链接。 可以选择哪些方法和库的最佳选择? (以易于学习和易于实施为衡量标准)。

p.s. in 这个网站 http://goohackle.com/tools/google-parser/,实施了完全相同的事情,但是关闭并要钱以获得更多结果。如果没有开源可用,我宁愿自己做,同时学习更多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 http://www.catonmat.net/c/27124 b http://www.catonmat.net/c/28907)在该工具的主页上给出了一个解决方案,目前仍在使用此调整。但也许有一天,由于谷歌的更改/阻止,它可能会再次停止工作。


目前已知的资源:

  • 对于刮擦来说,Scrapy http://scrapy.org/似乎是一个流行的选择,并且有一个名为的网络应用程序刮刀维基 https://scraperwiki.com/很有趣并且有另一个项目 https://github.com/onyxfish/fakerwiki提取它的库以供离线/本地使用。机械化 http://wwwsearch.sourceforge.net/mechanize/在不同的讨论中也被多次提及。

  • 对于解析 HTML,美丽汤 http://www.crummy.com/software/BeautifulSoup/似乎是最 受欢迎的选择。当然。lxml http://lxml.de/index.html too.


你可能会发现xgoogle http://www.catonmat.net/blog/python-library-for-google-search/有用...您似乎要求的大部分内容都在那里...

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Python 抓取和解析 Google 搜索结果 的相关文章

随机推荐