google-custom-search - 如何从 Google 自定义搜索 API 仅获取 HTML 网页
问题描述
我正在使用 Google CSE JSON API 来获取一些稍后会抓取的网页。问题是有时我会收到 PDF、DOCX 和其他一些我不想从 Google 获得的在网络上发布的文件。
我知道这个 API 中有一个名为 as 的参数fileType
来过滤结果,但这对我不起作用,因为我想要相反的结果(排除它们而不排除其他人)。
- 我试着
fileType
告诉谷歌这是'html'
但也没有用(从结果喜欢example.com/foo
到 onlyexample.net/bar.html
)。例如,使用这个,PHP 或 ASP 中的任何网页都不符合这个标准。 - 我也尝试设置
'text/html'
为fileType
值,但它没有做任何事情。
过滤它的方式可以是Content-Type
任何 HTTP GET 请求的响应中包含的标头(text/html
),但是如果 Google 为我这样做当然会更好。
先感谢您。
解决方案
好吧,我找到了如何轻松做到这一点。只需使用 .将过滤器添加到q
Google API 调用中的查询参数即可filetype:foo
。这样,您可以将搜索过滤为仅需要的结果:
service.cse().list(cx=const.SEARCH_ENGINE_KEY, q='"user manual" -filetype:pdf').execute()
您可以根据filetype
需要添加任意数量的过滤器以获得更好的结果。
现在我觉得这是一个愚蠢的问题。无论如何,我希望这对将来的任何人都有帮助。
推荐阅读
- php - 不会在 woocommerce_subscription_status_pending-cancel WooCommerce 挂钩中设置 Cookie
- android - 为什么 setEnabled(false) 不触发主题 Theme.AppCompat.Light 的 ColorStateList?
- android - 从 Firebase 存储流式传输 mp3
- python - 制定一个类以在引用字典时引入新数据
- node.js - socketcluster jwt auth 使用在另一台服务器上生成的令牌
- java - 在现代项目中使用具有较旧语言级别的 JAR 对性能有何影响?
- ios - 如何在 Swift 中查找连接到我的 Wifi 的所有设备的 IP 和 Mac 地址?
- android - 传递任何对象的内存泄漏
- kubernetes - 如何设置 Kubernetes 镜像拉取重试限制
- javascript - 将对象值映射到键 - Javascript