4

您好开发人员我想从网站读取外部内容,例如标签之间的元素。我正在使用 Web 浏览器控件,这是我的代码,但是此代码只是用网页填充了我的 Web 浏览器控件

public MainWindow()
{
    InitializeComponent();

    wbMain.Navigate(new Uri("http://www.annonymous.com", UriKind.RelativeOrAbsolute));
}
4

3 回答 3

4

正如我从您的问题中了解到的那样,您只是在尝试解析 HTML 数据,而不需要显示实际的网页。如果是这种情况,您可以采取一种非常简单的方法并使用 HttpWebRequest:

    var _plainText = string.Empty;
    var _request = (HttpWebRequest)WebRequest.Create("http://www.google.com");
    _request.Timeout = 5000;
    _request.Method = "GET";
    _request.ContentType = "text/plain";
    using (var _webResponse = (HttpWebResponse)_request.GetResponse())
    {
        var _webResponseStatus = _webResponse.StatusCode;
        var _stream = _webResponse.GetResponseStream();
        using (var _streamReader = new StreamReader(_stream))
        {
            _plainText = _streamReader.ReadToEnd();
        }
    }
于 2012-07-19T15:27:26.630 回答
4

您可以使用Html Agility Pack库来解析任何 HTML 格式的数据。

HtmlDocument doc = new HtmlDocument();
doc.Load(wbMain.DocumentText);

var nodes = doc.SelectNodes("//a[@href"]);

注意:该方法SelectNode接受XPath,而不是 CSS 或 jQuery 选择器。

var node = doc.SelectNodes("id('my_element_id')");
于 2012-07-19T11:53:43.220 回答
2

尝试这个:

dynamic doc = wbMain.Document;
var htmlText = doc.documentElement.InnerHtml;

编辑:取自这里

于 2012-07-19T11:44:37.497 回答