3

有什么方法可以从 ac# 应用程序获取浏览器中打开网页的元素或控件的内容?

我试图让窗口前,但我不知道如何使用它与它进行任何形式的通信。我也试过这段代码:

using (var client = new WebClient())
{
    var contents = client.DownloadString("http://www.google.com");
    Console.WriteLine(contents);
}

这段代码给了我很多我无法使用的数据。

4

1 回答 1

5

您可以使用 HTML 解析器,例如HTML Agility Pack从下载的 HTML 中提取您感兴趣的信息:

using (var client = new WebClient())
{
    // Download the HTML
    string html = client.DownloadString("http://www.google.com");

    // Now feed it to HTML Agility Pack:
    HtmlDocument doc = new HtmlDocument();
    doc.LoadHtml(html);

    // Now you could query the DOM. For example you could extract
    // all href attributes from all anchors:
    foreach(HtmlNode link in doc.DocumentNode.SelectNodes("//a[@href]"))
    {
        HtmlAttribute href = link.Attributes["href"];
        if (href != null)
        {
            Console.WriteLine(href.Value);
        }
    }
}
于 2013-01-13T17:13:26.787 回答