c# - 如何使用 HtmlAgilityPack 从脚本接收 JSON 数据
问题描述
我的问题是关于以下 html:https ://pastebin.com/qT97gBh5
我通过使用下载 HTML 站点
var url = "https://www.twitch.tv/monstercat";
var web = new HtmlWeb();
var doc = web.Load(url);
现在我唯一感兴趣的是下一节的 JSON 数据。
<script type="application/ld+json">[{"@context":"http://schema.org","@type":"VideoObject","thumbnailUrl":["https://static-cdn.jtvnw.net/previews-ttv/live_user_monstercat-{width}x{height}.jpg"],"embedUrl":"https://player.twitch.tv/?channel=monstercat&player=facebook&autoplay=true","name":"Monstercat - Twitch","description":"Non Stop Music - Monstercat Radio ","videoQuality":"1080p","publication":{"@type":"BroadcastEvent","isLiveBroadcast":true,"startDate":"03/29/2020 19:04:06"},"author":{"@type":"Person","name":"Monstercat","url":"https://www.twitch.tv/monstercat"},"uploadDate":"03/29/2020 19:04:06"}]</script>
我将如何使用 HtmlAgilityPack 使用 xpath
/html/head/script[2]
来接收 JSON 数据?
解决方案
您可以在 c# 中搜索敏捷包,然后使用敏捷获取此 X 路径
/html/head/script[2]
现在你有一个 json 字符串。使用 newtonsoft 将 json 转换为属性(使用 Nuget 添加此包)。恭喜您可以在课堂上阅读描述。
推荐阅读
- r - 如何计算出现次数并将其用于 R 中的折线图
- java - jacoco-maven-plugin 和 maven-surefire-plugin 之间的冲突
- javascript - 如何在不使用 React Native 中的状态的情况下验证 TextInput 值?
- spring-boot - Cloud Run - 我的应用程序每天都需要新的数据库文件
- flutter - 任务 ':cloud_firestore:compileDebugJavaWithJavac' 的执行失败。我该如何解决?
- javascript - 如何在 JavaScript 中使用重复值获取两个数组之间的差异
- python - 从 nltk 语料库中随机读取句子
- python - Python unix 套接字多线程 [Errno 106]
- cakephp-3.0 - 如何对同一模型同一视图的多个数据进行分页
- angular - 如何以编程方式设置 mat-table 中 mat-checkbox 的检查状态?