【发布时间】:2016-05-14 19:54:03
【问题描述】:
我正在尝试使用 Python 从 youtube 中的视频列表中下载 mp3: 到目前为止,我有:
from bs4 import BeautifulSoup
import urllib2
url='https://www.youtube.com/playlist?list=PLYjSYQBFeM-zQeZFpWeZ_4tnhc3GQWNj8'
page=urllib2.urlopen(url)
soup = BeautifulSoup(page.read())
todos=soup.findAll("a",{'class':'yt-uix-sessionlink'})
for todo in todos:
if len(str(todo.get('href'))) > 1 and 'index' in todo.get('href'):
dir='https://www.youtube.com'
texto=str(todo.get('href'))
final=texto.find("&list")
subtexto=dir+texto[0: final]
a.append(subtexto)
lista=set(a)
所以我得到了视频列表。我去了网址将它们转换为mp3
url2='http://www.youtube-mp3.org/'
发现我必须将每一个都粘贴到'form'标签中:
page2=urllib2.urlopen(url2)
soup2 = BeautifulSoup(page2.read())
formu=soup2.find('div', attrs={'id':'form'}).find('input')
如果我打印表格,我会得到:
<input autocomplete="off" id="youtube-url" onclick="sAll(this)" type="text" value="http://www.youtube.com/watch?v=KMU0tzLwhbE"/>
我认为这些库可能会有所帮助:
import requests
import lxml.html as lh
所以我尝试了:
form_data={'input':lista[1]}
response = requests.post(url2, data=form_data)
但是我必须发送“ENTER”键并按下“转换视频”按钮。你能告诉我怎么做吗?
【问题讨论】:
-
我不知道您是否知道这一点,但大多数(如果不是所有)youtube 上的视频都以纯音频格式提供。
-
好的,但无论如何,我想使用我已经拥有的列表。
-
这就是我的意思:当您下载视频时,例如使用
youtube-dl,您可以告诉它您想要纯音频格式的视频。无需通过第三方网站。 -
我只是想把它作为一个练习来做
-
但是我必须发送“ENTER”键并按下“转换视频”按钮...
Selenium可以完成这项工作
标签: python youtube beautifulsoup