简单抓取YouTube XML以获取Python视频列表
我有一个XML数据源,比如说:
http://gdata.youtube.com/feeds/api/videos/-/bass/fishing/
我想要获取这个数据源里视频的链接列表:
['http://www.youtube.com/watch?v=aJvVkBcbFFY', 'ht....', ... ]
4 个回答
3
在这么简单的情况下,这样就足够了:
import re, urllib2
request = urllib2.urlopen("http://gdata.youtube.com/feeds/api/videos/-/bass/fishing/")
text = request.read()
videos = re.findall("http:\/\/www\.youtube\.com\/watch\?v=[\w-]+", text)
如果你想做更复杂的事情,解析XML会比用正则表达式更合适。
3
你可以看看Universal Feed Parser,这是一个开源的RSS和Atom信息提取工具,专门为Python编程语言设计的。
7
from xml.etree import cElementTree as ET
import urllib
def get_bass_fishing_URLs():
results = []
data = urllib.urlopen(
'http://gdata.youtube.com/feeds/api/videos/-/bass/fishing/')
tree = ET.parse(data)
ns = '{http://www.w3.org/2005/Atom}'
for entry in tree.findall(ns + 'entry'):
for link in entry.findall(ns + 'link'):
if link.get('rel') == 'alternate':
results.append(link.get('href'))
看起来你得到的是所谓的“备用”链接。如果你想要一些稍微不同的东西,可能会有很多小的变化。我希望从上面的代码中能看得出来(还有标准的Python库文档,关于ElementTree的部分)。