【问题标题】:Retrieve Google results without using the Custom Search API不使用自定义搜索 API 检索 Google 结果
【发布时间】:2014-11-23 04:35:44
【问题描述】:

最近我一直在研究一个想法,该想法需要我查询 Google 图片并检索与该搜索词匹配的图片的链接。对于可用的 Google 图片 API,我最有希望的候选者是 Google Web Search API,但看起来它明天就要停止服务了: https://developers.google.com/web-search/docs/

替代它的 API 是 Google 自定义搜索 API,但使用起来有点令人沮丧:
Google API Custom Search with Python - Programmatic Search Results
每天 100 个搜索结果是一个非常严格的限制;每小时只有四次搜索。我也不想经历创建一些自定义搜索栏的麻烦,除非通过 Python,否则我永远不会使用这些搜索栏

我决定转向直接从结果页面解析 HTML。但是,这带来了一个问题,因为在页面的 HTML 中没有任何地方可以直接链接到图像,只有引用 URL。这适用于启用 javascript 和禁用 javascript 的 Google 图片版本(因此,即使 Python 将 javascript 欺骗为启用,也没什么)。我不知道从这里去哪里。任何人都可以向我推荐一些我以某种方式忽略的晦涩的更新库,或者给我一些指示吗?

【问题讨论】:

    标签: python-3.x google-custom-search google-image-search


    【解决方案1】:

    您可以使用Selenium Webdriver 实际执行 JavaScript 并单击缩略图视图中的图像。打开图像后,链接就在 DOM 中,您可以从那里抓取它。 Webdriver 所做的只是打开一个实际的浏览器并模拟一个用户。如果您使用xvfbwrapper,您甚至可以将其作为无头浏览器运行。不利的一面是,即便如此,您仍需要在服务器上安装所用浏览器的所有依赖项。

    但是,抓取 Google 信息违反了他们的服务条款,他们会尽快阻止您。因此,除非您通过验证码(与会话相关联),否则您可能无法在被这种方式阻止之前进行大量搜索。

    【讨论】: