-3

我想使用(任何编程语言)C#.NET 开发桌面应用程序;要求是在文本视图中显示问题的答案,就像谷歌在有人搜索图像中显示的任何问题时所做的那样。

我想从 Google 搜索中提取粗体文本,以便我可以将其存储在我的应用程序中并向用户显示我的应用程序中的结果

谷歌热门搜索结果

4

1 回答 1

2

它有2个选项:

1. HTML解析

您需要获取 HTML 代码,然后对其进行处理以找到所谓的“顶级结果”的签名。

您可以使用类似此示例的代码来获取 HTML 代码:

string urlAddress = "https://www.google.co.il/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=what%20is%20the%20weight%20of%20human%20heart";
// need to process to get the real URL of the question.
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlAddress);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();

if (response.StatusCode == HttpStatusCode.OK)
{
  Stream receiveStream = response.GetResponseStream();
  StreamReader readStream = null;

  if (response.CharacterSet == null)
  {
     readStream = new StreamReader(receiveStream);
  }
  else
  {
     readStream = new StreamReader(receiveStream,Encoding.GetEncoding(response.CharacterSet));
  }

  string data = readStream.ReadToEnd();
  response.Close();
  readStream.Close();
}

这将为您提供从网站返回的 HTML 代码。

要提取最佳结果,您可以使用此处讨论的一些 HTML 解析器:在 C# 中解析 html 的最佳方法是什么?

2.谷歌API

您还可以使用谷歌 API:

using Google.API.Search;

接着

 var client = new GwebSearchClient("http://www.google.com");
    var results = client.Search("google api for .NET", 100);
    foreach (var webResult in results)
    {
        //Console.WriteLine("{0}, {1}, {2}", webResult.Title, webResult.Url, webResult.Content);
        listBox1.Items.Add(webResult.ToString ());
    }
于 2016-12-21T12:49:47.280 回答