Hello开发人员我想从网站读取外部内容,如标签之间的元素。我使用的Web浏览器控件,在这里是我的代码但是这个代码只是填补与网页阅读WPF中Web浏览器的内容
public MainWindow()
{
InitializeComponent();
wbMain.Navigate(new Uri("http://www.annonymous.com", UriKind.RelativeOrAbsolute));
}
Hello开发人员我想从网站读取外部内容,如标签之间的元素。我使用的Web浏览器控件,在这里是我的代码但是这个代码只是填补与网页阅读WPF中Web浏览器的内容
public MainWindow()
{
InitializeComponent();
wbMain.Navigate(new Uri("http://www.annonymous.com", UriKind.RelativeOrAbsolute));
}
我的Web浏览器控件试试这个:
dynamic doc = wbMain.Document;
var htmlText = doc.documentElement.InnerHtml;
编辑:从here服用。
[此答案]的副本(http://stackoverflow.com/a/5762063/1136211)。你应该更好地参考现有的答案。这里回答的问题也可能对提问者有所帮助。 – Clemens 2012-07-19 11:50:12
@Clemens感谢您的领导。对于该网站来说并不陌生,但实际上正在努力贡献。 – Darajan 2012-07-19 11:54:22
Ezakiel这有助于很多和Underbar“文档”显示为空。 – user1528573 2012-07-19 11:59:09
您可以使用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')");
每当我尝试访问节点我得到一个异常“表达式必须评估到一个节点集”。 – user1528573 2012-07-19 12:25:04
你可以发布一些你正在使用的代码吗? – 2012-07-19 12:48:31
var nodes = doc.DocumentNode.SelectNodes(“#text”); – user1528573 2012-07-19 12:55:32
当我从你的问题的理解,你只是试图解析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();
}
}
你尝试过什么? – Clemens 2012-07-19 11:40:22
我HV试图web浏览器InspectHTML的内容,但没有成功...... – user1528573 2012-07-19 11:41:36
请参考下面的SO问题: http://stackoverflow.com/questions/2038104/parsing-html-to-get-content-using- c-sharp – Zadam 2012-07-19 11:44:37