【问题标题】:Scraping Google - Number of retrievable results not matching total抓取 Google - 可检索结果的数量与总数不匹配
【发布时间】:2012-05-07 22:38:16
【问题描述】:

我想用python获取google搜索结果,到目前为止我有以下脚本,这是我从post学到的:

import urllib2
from bs4 import BeautifulSoup
import lxml
import sqlite3
import urllib
import json

def showSome(searchFor):
    query = urllib.urlencode({'q':searchFor})
    url = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&%s'%query
    searchResponse = urllib.urlopen(url)
    searchResults = searchResponse.read()
    results = json.loads(searchResults)
    data = results['responseData']
    print 'Total results: %s'%data['cursor']['estimatedResultCount']
    hits = data['results']
    print 'Top %d hits'%len(hits)
    for h in hits:
        print ' ', h['url']

showSome("site:www.hitmeister.de/shops/")

它显示了 4380 个结果,当我使用浏览器搜索相同的查询时,它给了我大约 6650 个结果,我如何从 google 中提取所有结果? 这也给了我前 4 个结果,我怎样才能获取所有结果?

【问题讨论】:

    标签: python web-crawler google-search


    【解决方案1】:

    这里的问题是,Google 的估计结果数量始终是估计值,仅此而已。这些估计值可能会因许多因素而异,显然包括您是通过 API 搜索还是通过 Web 浏览器进行搜索。事实上,当您从同一系统上的不同浏览器运行相同的查询时,Google 会返回不同的估计值并不陌生。这可能是由另一台服务器回答您的查询来解释的,但我对此表示怀疑,而且众所周知,Google 会考虑搜索上下文。

    另见this short pieceGoogle documentation on the subject。尽管该附录似乎是专门为 Google Search Appliances 编写的,但它很好地描述了这些结果计数的准确性。

    实际上,Google 无论如何都不会为查询返回超过 1,000 次点击,因此无论初始估计如何,您都不会获得查询的所有结果。至少,我没有尝试从 API 请求超过 1000 个结果,但这是 Web 界面的行为,我假设 API 具有相同的限制。

    【讨论】:

    • 你的意思是1000个请求还是1000个结果?
    【解决方案2】:

    Google 非常复杂,结果并不取决于许多不同的参数。

    例如,如果我在 google.co.uk 上搜索一个词,我得到的结果与 google.com 不同。

    对于不同的用户代理和 cookie,此行为也可能相同(例如,因为您在 cookie 中设置了不同的语言)。

    同样重要的是,结果计数不准确。这只是谷歌搜索的估计。如果你想改变这种行为,我会尝试通过 ajax 注入相同的参数,你用普通搜索注入(包括 cookie 等)。

    最终我的反问是:你为什么需要这个?这个计数大多数时候是不准确的,因为计数器只是一个估计值。更重要的问题是顶级结果是否相同。如果不是这种情况,我认为这将是一个问题。

    【讨论】:

    • 我只想获取结果中的所有链接,我该怎么做或者是否有可能获取所有结果链接???
    • 你不会用这个方法得到所有的结果,你只会得到最好的结果。如果您想获取所有内容,则必须遍历页面(请查看 google api)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 2020-03-28
    • 1970-01-01
    • 2017-07-14
    • 2015-11-23
    相关资源
    最近更新 更多