c# - 如何返回准确的谷歌搜索结果?

标签 c# api screen-scraping google-search-api

我正在开发一个 C# 应用程序,以返回特定关键字的确切前 10 个 Google 搜索结果。所以我决定尝试一下 Google 搜索 api。特别是,我正在使用一个名为“GoogleSearchAPI”的 dotnet 应用程序,但它不会返回与输入 Google 完全相同的结果,我很好奇是否有办法做到这一点。无论是使用 Google Search API 还是通过其他方法,我真的不在乎哪种方式。

例如,以下是使用相同搜索短语的 2 个屏幕截图。第一个来自谷歌: enter image description here

这就是从 Google Search API 针对相同搜索短语返回的内容(在编写本文时,该图像在我的预览中看起来被压扁了,所以为了以防万一,这里是图像网址: image link ): enter image description here

如您所见,API 返回的结果截然不同。第一个谷歌搜索返回是谷歌加。 api返回实际的网站。然后,API 返回 3 个 facebook 结果,而 google 返回 yelp。非常不同。

以下是我在 GoogleSearchAPI 中使用的示例代码:

WebQuery query = new WebQuery(tbQuery.Text);
        query.ResultSetSize.Value = ResultSetSize.large;
        IGoogleResultSet<GoogleWebResult> resultSet = GoogleService.Instance.Search<GoogleWebResult>(query);
        dgvResults.DataSource = resultSet.Results;

有谁知道如何检索 Google 返回的确切搜索结果?我总是可以诉诸抓取,但这违反了 Google 的条款,因此我需要创建解决方法,这会变得相当困惑,所以如果可以的话,我宁愿避免这种情况。

谢谢

最佳答案

如果您从 API 获得结果,则一切正常。您无法从谷歌搜索中获得相同的结果,所有内容都基于您的 Cookie、浏览器历史记录、书签、位置等。您可以尝试从两个不同的浏览器进行搜索,您会得到不同的结果。

关于c# - 如何返回准确的谷歌搜索结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27133214/

相关文章:

ios - 有没有办法使用 Apple Remote 来控制我的 iOS 应用程序?

c# - 用于文件列表的 FileSystemwatcher

c# - 使用 C# 从控制台应用程序访问 HTTPS URL

c - 如何将 R 函数包装为 C 库

ruby-on-rails - 调用 API 但不是针对每个用户

python - 网页抓取返回标签

python - 美丽汤 : Extract "img alt" content Web Scraping in Python

java - 安卓/Java : Simulate a click on this webpage

c# - EF CodeFirst 引用 DbContext 类

c# - 是否可以在 ASP.NET MVC 5 ViewModel 中同时使属性可为空且必需?