c# - 从 URL 获取 HTML 元素值
问题描述
如何在 c# 中获取 XHtml 代码?
我正在加载网页myweb.Source = new Uri(@"https://" + @urlstring.Text);
我将 html 保存在字符串中
WebClient a = new WebClient();
byte[] data = a.DownloadData(myweb.Source.ToString());
string ab = Encoding.ASCII.GetString(data);
现在我正在寻找视频网址路径
string id = "";
int index = ab.IndexOf("<video")
int indexe = ab.IndexOf("</video>");
for (int i = index; i <= indexe + 100; i++)
{
id += ab[i];
}
结果是
<video class="js-select-menu-off vjs-video"
data-account="3695997568001"
data-player="SyDW1dJDG"
data-embed="default"
data-video-id=""
controls></video>
<div class="playback-speed-popover popover dark">
<div class="inner-popover">
但我想要的是这个:
<video class="vjs-tech" data-account="3695997568001"
data-player="SyDW1dJDG" data-embed="default"
data-video-id="" id="vjs_video_3_html5_api"
poster="blablabla" src="https://hous......"></video>
如何从网页获取 src?
解决方案
我在 Visual Studio Code 的示例中使用 .NET Core。使用以下方式安装 HtmlAgilityPack:
dotnet add package HtmlAgilityPack --version 1.11.16
下面的代码是我将如何解决它:
static void Main(string[] args)
{
var client = new System.Net.Http.HttpClient();
var content = client.GetStringAsync(@"https://www.w3schools.com/html/html5_video.asp").Result;
HtmlAgilityPack.HtmlDocument document = new HtmlAgilityPack.HtmlDocument();
document.LoadHtml(content);
var videos = document.DocumentNode.Descendants("video").FirstOrDefault().Attributes["src"].Value;
}
推荐阅读
- python - 如何在没有 cuda 的 Windows 中安装 Tensorflow 和 keras
- gremlin - Gremlin 查询以获取未与任何其他顶点连接的顶点列表?
- python-3.x - 每次在 Jupyter 笔记本中运行时如何生成具有新文件名的文件?
- vhdl - Process 中的执行顺序以及 if else :VHDL
- html - 打开虚拟键盘时,iOS 上的 Safari 会滚动到元素之外
- php - php执行链接页面
- javascript - 如何使用 javascript 和 html 复制不同的 div?
- python - 将 DataFrame 插入/附加到 MultiIndex DataFrame
- typescript - 在打字稿中扩展枚举
- angular - 无法读取未定义的属性“currentValue”