如何在没有 api 的情况下从 Google 获取 "Did you mean" 数据?

How to get "Did you mean" data from Google without api in c?

我尝试在 C 中使用 curl 下载 Google 搜索页面的源代码并获取 "did you mean" 或 "showing results for" 数据,但我失败了。

如何仅使用 C 来保存 Google 搜索页面源代码?

样本url:https://www.google.com/search?q=stacoverflow

我要:查看源代码:https://www.google.com/search?q=stacoverflow

谢谢。

首先:确保您指定了用户代理。 (搜索 curl 文档以了解如何执行此操作。)如果您未指定用户代理,Google 不会为您提供页面。

这是我的用户代理,它似乎可以工作:"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.119 Safari/537.36"

其次:确保您正在尝试在 Google 站点的输出中找到正确的字符串。 Google 可能会尝试根据您的 IP 地址找出您所在的国家/地区,并尝试将字符串 "did you mean" 或 "Showing results for" 本地化为您的语言。例如,我现在在爱沙尼亚,Google(我试图访问 google.COM!)确定了我当前所在的国家并给了我 "Näitab tulemusi" 而不是 "Showing results for"。另外,我想在这里指出:您的 curl 库不会与您的浏览器共享设置、cookie 等。 IE。如果你在浏览器中 Google 中设置了一些语言,curl 将不会继承它。

第三:当我得到 Google 英文结果时,我得到 "Showing results for" 而不是 "Did you mean"。所以,尝试搜索不同的字符串。

尝试通过一些 HTML 更漂亮的方式传递 Google 输出并查看生成的源代码