gpt4 book ai didi

c# - YouTube HTML Agility Pack C#

转载 作者:搜寻专家 更新时间:2023-10-31 22:23:16 25 4
gpt4 key购买 nike

我正在尝试从 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com