【发布时间】:2014-09-18 16:26:44
【问题描述】:
我想从网页获取数据:
<embed type="application/x-vlc-plugin"
name="vlc" ratio="16:9"
autoplay="yes" loop="no"
rtsp-caching="3000" volume="100"
width="670" height="380"
target="http://185.2.42.106/stream/?d=1402956552&token=5119675517383">
我想获取目标属性值。我搜索了整个互联网,没有找到任何我理解的东西。有人能告诉我诀窍并解释一下吗?
好的,所以我可以使用以下代码:
var webGet = new HtmlWeb();
var doc = webGet.Load("http://www.spusti.net/play-vlc-185");
HtmlNode node = doc.DocumentNode.SelectNodes("//embed")[0];
var val = node.Attributes["target"].Value; //10743
MessageBox.Show(val);
不要问我是怎么做的,但我做到了。感谢您花时间复制粘贴!
【问题讨论】:
-
你看Html Agility Pack了吗?这应该符合您的需求。
-
于是我搜索了一下,发现Html Agility Pack不支持属性选择-htmlagilitypack.codeplex.com/discussions/1720这是真的吗?
-
如果您尝试解析数据,请查看
XPath。您可以将XPath与Html Agility Pack结合使用,以获得所需的一切。或许看了XPath的相关内容,你就会明白DrCopyPaste的回答了。 -
很高兴它为您工作;我只想指出一件事:您现在正在使用
SelectNodes("//embed")-method,它基本上会在root 下为您提供所有embed-nodes,然后您只需通过附加[0]来选择第一个,只要该目标页面的结构改变了该策略可能不再起作用(即,如果在该页面上已经存在的那个之前插入了一个额外的embed-node,那么该策略将不再起作用)。不管怎样,你的工作代码很有趣;) -
感谢您的提示。页面不应该改变,它现在可以工作,但将来知道这一点是件好事。再次感谢您的宝贵时间,祝您有美好的一天。 :)