这是我目前的密码。我不知道我做错了什么。也许我在html中的挖掘不够深入,没有给Beautifulsoup正确的标签吗?目前,我的代码正在返回空白。
from bs4 import BeautifulSoup
from urllib.request import urlopen
html = urlopen("https://www.youtube.com/watch?v=5_zrHZdhaBU")
soup = BeautifulSoup(html,'html.parser')
nameList = soup.findAll("div", {"id": "cp-2"})
for name in nameList:
print(name.get_text())这是我检查过的代码。我正试着让Python回到我身边,“但它被解开了”
<div id="cp-2" class="caption-line" data-time="7.54"><div class="caption-line-time">0:07</div><div class="caption-line-text">but it was untucked.</div></div>*编辑
通过单击“共享”按钮旁边的“更多”按钮,可以找到代码。然后你点击成绩单,你会看到所有的文本。
发布于 2016-12-02 11:25:55
是的,它是通过Ajax加载的:打开页面,然后打开Network选项卡,按开始时间对请求进行排序(首先是最新的请求),然后单击Youtube上的CC按钮。
如果获得api/timedtext请求,则响应为XML。这里是抄本的全部网址:
langs%2Ccaps%2Cv%2Cexpire&lang=en&fmt=srv3
不过,我不知道这个URL是如何生成的。这需要对复杂的YouTube脚本进行研究,等等。
编辑: This answer帮了我。您可以省略这些参数中的大多数,只需使用以下URL:
https://www.youtube.com/api/timedtext?&v=5_zrHZdhaBU&lang=en或者一般情况下:
https://www.youtube.com/api/timedtext?&v={video_id}&lang={language_code}https://stackoverflow.com/questions/40922144
复制相似问题