- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试从 YouTube 的搜索结果页面检索所有视频 ID。
每个结果都有这个代码:
<a href="/watch?v=aYIC-ebAD3o" class="ux-thumb-wrap result-item-thumb">
<span class="video-thumb ux-thumb-128 ">
<span class="clip">
<img onload="tn_load(5)" alt="Thumbnail" src="//i2.ytimg.com/vi/aYIC-ebAD3o/default.jpg" >
</span>
</span>
<span class="video-time">4:16</span>
<span dir="ltr" class="yt-uix-button-group addto-container short video-actions" data-video-ids="aYIC-ebAD3o" data-feature="thumbnail">
<button type="button" class="start master-sprite yt-uix-button yt-uix-button-short yt-uix-tooltip" onclick=";return false;" title="" data-button-action="yt.www.addtomenu.add" role="button" aria-pressed="false">
<img class="yt-uix-button-icon yt-uix-button-icon-addto" src="//s.ytimg.com/yt/img/pixel-vfl3z5WfW.gif" alt="">
<span class="yt-uix-button-content">
<span class="addto-label">Add to</span>
</span>
</button>
<button type="button" class="end yt-uix-button yt-uix-button-short yt-uix-tooltip yt-uix-button-empty" onclick=";return false;" title="" data-button-menu-id="shared-addto-menu" data-button-action="yt.www.addtomenu.load" role="button" aria-pressed="false">
<img class="yt-uix-button-arrow" src="//s.ytimg.com/yt/img/pixel-vfl3z5WfW.gif" alt="">
</button>
</span>
<span class="video-in-quicklist">Added to queue </span>
</a>
<div class="result-item-main-content">
我正在尝试解析“data-video-ids”类数据。使用 HTML Agility Pack 执行此操作的最佳方法是什么? ?
我试过这个:
foreach(HtmlNode node in doc.DocumentNode.
SelectNodes("//span[@class='data-video-ids']"))
{
string text = node.InnerText;
lblTest2.Text += text + Environment.NewLine;
}
有什么想法吗?
最佳答案
我认为从长远来看,如果您使用 YouTube 的 APIs 之一,您会过得更好。 .
当没有 API 时,我只会将 Web 请求和 HtmlAgilityPack 作为最后的手段。这样做的主要原因是,如果 YouTube 更改了他们的页面,就会破坏您的代码。开放 API 通常旨在向后兼容,因此您的应用程序在大多数情况下应该可以无限期地工作。
这是来自 Youtube 的 API 的代码示例:
YouTubeQuery query = new YouTubeQuery(YouTubeQuery.DefaultVideoUri);
//order results by the number of views (most viewed first)
query.OrderBy = "viewCount";
// search for puppies and include restricted content in the search results
// query.SafeSearch could also be set to YouTubeQuery.SafeSearchValues.Moderate
query.Query = "puppy";
query.SafeSearch = YouTubeQuery.SafeSearchValues.None;
Feed<Video> videoFeed = request.Get<Video>(query);
printVideoFeed(videoFeed);
看起来很简单,对吧?
关于c# - YouTube HTML Agility Pack C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5315910/
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 3年前关闭。 Improve thi
Closed. This question is opinion-based。它当前不接受答案。 想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。 2年前关闭。
我正在尝试更换我所有的 h1带有 h2 的标签标签,我正在使用 HtmlAgility 包。 我这样做了: var headers = doc.DocumentNode.SelectNodes("//
我想获取某个类中的所有链接。 HTML 的一个例子是 ES M3 E-mini S&P500 June 2013
以下测试代码: [Test] public void PossibleHtmlAgilityPackBug() { const string html = @""; var doc =
我正在使用 Visual Studio Team Services(以前称为 Team Foundation Service,而不是 Team Foundation Server),并且需要将团队项目
给定一个 HTML 文档,我想识别文档中的所有数字并在数字周围添加自定义标签。现在,我使用以下内容: HtmlNodeCollection bodyNode = htmlDoc.DocumentNod
我正在尝试让 Html Agility Pack 在我的情况下工作。我需要检测现有 HTML 页面中的所有脚本元素并删除它们,将更改保存到另一个文件。在这里,bodyNode 返回正确数量的脚本标签,
我正在尝试从 HTML 中删除不必要的内容。具体来说,我想删除评论。我找到了一个很好的解决方案( Grabbing meta-tags and comments using HTML Agility
The next code extracts from the link下一个代码从链接中提取 https://www.ncbi.nlm.nih.gov/myncbi/1dAdNxivfiO5
下一个代码从链接中提取。一个有引文列表的网站。我的最终目标是提取该信息并将其放入json对象列表中,这样每个对象都可以拥有引用信息。。虽然此代码提取每个引文,但目前它使用以下命令提取第一个PMID值:
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 5 年前。 Improve
关闭。这个问题需要更多 focused .它目前不接受答案。 想改进这个问题?更新问题,使其仅关注一个问题 editing this post . 4年前关闭。 Improve this questi
Closed. This question is opinion-based 。它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文来回答。
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 3年前关闭。 Improve t
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想要改善这个问题吗?更新问题,以便将其作为on-topi
Closed. This question is opinion-based。它当前不接受答案。 想要改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。 3年前关闭。
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 3年前关闭。 Improve t
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 9年前关闭。 Improve this q
我是一名优秀的程序员,十分优秀!