首页 > 解决方案 > 如何从 Google 自定义搜索 API 仅获取 HTML 网页

问题描述

我正在使用 Google CSE JSON API 来获取一些稍后会抓取的网页。问题是有时我会收到 PDF、DOCX 和其他一些我不想从 Google 获得的在网络上发布的文件。

我知道这个 API 中有一个名为 as 的参数fileType来过滤结果,但这对我不起作用,因为我想要相反的结果(排除它们而不排除其他人)。

  1. 我试着fileType告诉谷歌这是'html'但也没有用(从结果喜欢example.com/foo到 only example.net/bar.html)。例如,使用这个,PHP 或 ASP 中的任何网页都不符合这个标准。
  2. 我也尝试设置'text/html'fileType值,但它没有做任何事情。

过滤它的方式可以是Content-Type任何 HTTP GET 请求的响应中包含的标头(text/html),但是如果 Google 为我这样做当然会更好。

先感谢您。

标签: google-custom-searchgoogle-api-python-clientgoogle-apis-explorer

解决方案


好吧,我找到了如何轻松做到这一点。只需使用 .将过滤器添加到qGoogle API 调用中的查询参数即可filetype:foo。这样,您可以将搜索过滤为仅需要的结果:

service.cse().list(cx=const.SEARCH_ENGINE_KEY, q='"user manual" -filetype:pdf').execute()

您可以根据filetype需要添加任意数量的过滤器以获得更好的结果。

现在我觉得这是一个愚蠢的问题。无论如何,我希望这对将来的任何人都有帮助。


推荐阅读