如何使用 Python 从 YouTube 链接中提取视频 ID?
我知道使用 PHP 的 parse_url
和 parse_str
函数可以轻松完成此操作:
$subject = "http://www.youtube.com/watch?v=z_AbfPXTKms&NR=1";
$url = parse_url($subject);
parse_str($url['query'], $query);
var_dump($query);
但是如何使用 Python 实现此目的?我可以执行urlparse
,但是接下来怎么办?
I know this can be easily done using PHP's parse_url
and parse_str
functions:
$subject = "http://www.youtube.com/watch?v=z_AbfPXTKms&NR=1";
$url = parse_url($subject);
parse_str($url['query'], $query);
var_dump($query);
But how to achieve this using Python? I can do urlparse
but what next?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(14)
Python 有一个用于解析 URL 的库。
Python has a library for parsing URLs.
这是 Mikhail Kashkin 解决方案的 Python3 版本,添加了场景。
This is the Python3 version of Mikhail Kashkin's solution with added scenarios.
这是正则表达式,它涵盖了这些情况
((?<=(v|V)/ )|(?<=be/)|(?<=(\?|\&)v=)|(?<=嵌入/))([\w-]+)
Here is RegExp it cover these cases
((?<=(v|V)/)|(?<=be/)|(?<=(\?|\&)v=)|(?<=embed/))([\w-]+)
我使用这个很棒的包
pytube
。$ pip install pytube< /code>
输出
I use this great package
pytube
.$ pip install pytube
Output
未经测试。
Untested.
您可以使用
You can use
当这些参数可以按任何顺序出现时,拆分字符串是一个非常糟糕的主意。坚持使用 urlparse:
Splitting strings is a really bad idea when those parameters could come in any order. Stick with urlparse:
您可以尝试使用正则表达式作为 YouTube 视频 ID:
Here is something you could try using regex for the youtube video ID:
不需要正则表达式。在
?
上拆分,取第二个,在=
上拆分,取第二个,在&
上拆分,取第一个。No need for regex. Split on
?
, take the second, split on=
, take the second, split on&
, take the first.虽然这需要搜索查询,但会为您提供
id
:Although this will take a search query but gives you the
id
:这适用于所有类型的 YouTube 视频链接。
This will work for all kinds of YouTube video links.
我很晚了,但我使用这个片段来获取视频 ID。
I am very late, but I use this snippet to get the video id.
我用这个
I use this
我创建了没有正则表达式的 youtube id 解析器:
I've created youtube id parser without regexp: