我对XPath语法有一个问题,因为我不知道如何使用它来提取特定的HTML语句。我正在尝试从频道页面加载视频信息;http://www.youtube.com/user/CinemaSins/videos
我知道有一行可以保存视图、标题、ID等的所有细节。
下面是我试图从html中获得的信息:

那是2836号线;
<div class="yt-lockup clearfix yt-lockup-video yt-lockup-grid context-data-item" data-context-item-id="ntgNB3Mb08Y" data-context-item-views="243,456 views" data-context-item-time="9:01" data-context-item-type="video" data-context-item-user="CinemaSins" data-context-item-title="Everything Wrong With The Chronicles Of Riddick In 8 Minutes Or Less">我不知道怎么做,但我有HTML能力包作为资源添加,并开始尝试获得它。有人能解释一下如何获取所有这些细节和涉及到的XPath语法吗?
我所尝试的是:
foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//div[@class='yt-lockup clearfix yt-lockup-video yt-lockup-grid context-data-item']//a"))
{
if (node.ChildNodes[0].InnerHtml != String.Empty)
{
title.Add(node.ChildNodes[0].InnerHtml);
}
}^以上代码只用于获取每个视频的标题。但它也有一个空白的输入。执行的代码和结果如下。

发布于 2013-09-09 21:48:56
似乎给我的答案并没有帮助
foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//div[@class='yt-lockup clearfix yt-lockup-video yt-lockup-grid context-data-item']"))
{
String val = node.Attributes["data-context-item-id"].Value;
videoid.Add(val);
}我只需要在课堂上抓取内容。知道了这一点就更容易使用了。
发布于 2013-09-08 12:04:25
您的xpath正在选择<div>中的<div>元素。如果您也想要<div>的属性,那么您需要
( a)选择这两个元素并分别处理它们。( b)运行几个xpath查询,其中指定所需的确切属性。
让我们用(a)作为这个例子。
var nodes = doc.DocumentNode.SelectNodes("//div[@class='yt-lockup clearfix yt-lockup-video yt-lockup-grid context-data-item']");并获得如下的属性和标题:
foreach(var node in nodes)
{
foreach(var attribute in node.Attributes)
{
// ... Get the values of the attributes here.
}
var linkNodes = node.SelectNodes("//a"));
// ... Get the InnerHtml as per your own example.
}我希望这已经足够清楚了。祝好运。
https://stackoverflow.com/questions/18683171
复制相似问题