大家好,我希望能够从网站上读取外部内容,比如标签之间的元素。我正在使用Web浏览器控件,并且以下是我的代码。然而,这段代码只是在我的Web浏览器控件中填充了网页。
public MainWindow()
{
InitializeComponent();
wbMain.Navigate(new Uri("http://www.annonymous.com", UriKind.RelativeOrAbsolute));
}
大家好,我希望能够从网站上读取外部内容,比如标签之间的元素。我正在使用Web浏览器控件,并且以下是我的代码。然而,这段代码只是在我的Web浏览器控件中填充了网页。
public MainWindow()
{
InitializeComponent();
wbMain.Navigate(new Uri("http://www.annonymous.com", UriKind.RelativeOrAbsolute));
}
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')");
doc.DocumentNode.SelectNodes("//div[@id[starts-with(.,'text')");
。我已经更新了我的答案。 - Tomislav Markovski据我理解,从您的问题中可以得知,您只需要解析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();
}
}
试试这个:
dynamic doc = wbMain.Document;
var htmlText = doc.documentElement.InnerHtml;
edit: Taken from here.