我想在YouTube上搜索字幕。不幸的是,并不是所有的东西都按要求加载。我很想知道我哪里出错了。在
查询字符串:
https://www.youtube.com/timedtext_editor?action_mde_edit_form=1&v=Nxb2s2Mv6Pw&lang=en&bl=vmp&forceedit=captions&tab=captions
所以我发现这是唯一的Url-I.D。。。Nxb2s2Mv6Pw
我可以相应地替换它。在
如果我运行下面的代码,它不会捕捉到我需要它定位的标记<textarea yt-uix-form-input-textarea ...>
。在
我极力避免使用Selenium来捕获这一点,因为我有很多链接需要迭代和重复这个过程。从下面的代码可以看出,我尝试加入延迟时间来等待页面加载,但是什么也没有。在
^{pr2}$请告知。在
我尝试使用
requests
和lxml
来抓取页面,但是当我迭代脚本中的标记时,我找不到页面上的任何字幕(字幕所在的textarea标记在脚本中没有显示) 这很可能是因为YouTube使用javascript来加载字幕。在Python的请求库不支持javascript。但是,您有几个选择:
使用selenium来删除字幕(您说过您不想这样做。)
查看POST并通过浏览器获取请求,并尝试将所需的请求参数发送到您跟踪javascript的url(如果使用了身份验证或参数使用了动态令牌,则可能不会始终有效)
使用youtube-dl下载字幕。
(这似乎是最简单/最可靠的方法。)
youtube-dl是一个命令行实用程序,但您也可以根据github上的文档导入它。在
有几种方法可以帮你解决这个问题。我将使用您在帖子中提到的视频作为示例:
说到这里,您可以在python中创建一个函数来调用命令:
^{pr2}$或者,您可以直接从python导入
youtube_dl
,然后从那里使用它:这将在工作目录中创建一个名为
文件内容如下所示:
相关问题 更多 >
编程相关推荐