【发布时间】:2019-08-23 13:24:46
【问题描述】:
我可以在 Youtube/watch?v=videolink 获取所有视频信息,但我想从 Youtube/results?search-query 页面获取链接和标题。
webCommandMetadata":{"url":"/watch?v=VIDEOID"}
我得到了这个正则表达式"/\/watch\?v=(.*?)[&\"]/i"的视频网址
Output:VIDEOID
但我无法获得标题
title":{"accessibility":{"accessibilityData":{"label":"#VIDEOTITLE"
因为源代码中有很多标签。是否可以将所有内容从标题正则表达式到 :" 并输出如 #VIDEOTITLE ?或其他方式获得它?
【问题讨论】:
-
你得到的东西看起来像 JSON ......如果是这样的话,那么正确地将其 解码 为 PHP 数据结构,而不是乱用正则表达式。
-
为什么不直接使用他们的 API?
-
不要使用正则表达式解析 json,因为 json 可能包含可选的空格并且仍然可能保持有效,但您的正则表达式可能会停止工作,除非您使用
\s*处理可选的空格,这会使正则表达式变得丑陋.不知道是什么阻止了您编写正则表达式,就像您已经为获取 videoid 所做的那样。它是simple,但就像我说的,最好使用 json 解析器。