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

C# 如何返回准确的谷歌搜索结果?,c#,api,screen-scraping,google-search-api,C#,Api,Screen Scraping,Google Search Api,我正在开发一个c#应用程序,用于返回特定关键字的前10个Google搜索结果。所以我决定试试谷歌搜索api。特别是,我正在使用一个名为“GoogleSearchAPI”的dotnet应用程序,但它返回的结果与在Google中键入的结果并不完全相同&我很好奇是否有办法做到这一点。无论是使用谷歌搜索API还是通过其他方法,我真的不在乎用哪种方式 例如,这里有两个使用相同搜索短语的屏幕截图。第一个来自谷歌: 这是谷歌搜索API为同一搜索短语返回的内容(在我写这篇文章时,这张图片在预览中看起来像被压扁

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

例如,这里有两个使用相同搜索短语的屏幕截图。第一个来自谷歌:

这是谷歌搜索API为同一搜索短语返回的内容(在我写这篇文章时,这张图片在预览中看起来像被压扁了一样,以防万一,这是图片url:):

正如您所看到的,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;
WebQuery query=newwebquery(tbQuery.Text);
query.ResultSetSize.Value=ResultSetSize.large;
IGoogleResultSet resultSet=GoogleService.Instance.Search(查询);
dgvResults.DataSource=resultSet.Results;
有人知道我如何检索Google返回的准确搜索结果吗?我总是可以求助于抓取,但这违反了谷歌的条款,所以我需要创建变通办法,这会变得相当混乱,所以如果可以的话,我宁愿避免这样做


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

没有确切的结果。最有可能的是,谷歌正在根据过去的搜索和偏好为你定制你看到的结果。而API调用将无法访问该信息。尝试搜索未登录到任何谷歌服务和禁用cookies等,以查看您的结果是否发生变化。这一点很好。我试过了&我确实看到,虽然结果仍然不同,但现在更接近了。至少我现在明白了为什么结果会有差异。谢谢你说得对。我尝试了切换浏览器,以及删除cookies&我的结果改变了。仍然不完全一样,但我现在明白为什么我得到了不同的结果。谢谢