您好开发人员我想从网站读取外部内容,例如标签之间的元素。我正在使用 Web 浏览器控件,这是我的代码,但是此代码只是用网页填充了我的 Web 浏览器控件
public MainWindow()
{
InitializeComponent();
wbMain.Navigate(new Uri("http://www.annonymous.com", UriKind.RelativeOrAbsolute));
}
正如我从您的问题中了解到的那样,您只是在尝试解析 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();
}
}
您可以使用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')");