media:thumbnail 和 BeautifulSoup
media:thumbnail w/ BeautifulSoup
使用 BeautifulSoup 解析 media:thumbnail
标签的 url
属性的正确方法是什么?我尝试了以下方法:
doc = BeautifulSoup(urlopen('http://rss.cnn.com/rss/edition.rss'), 'xml')
items = doc.findAll('item')
for item in items:
title = item.title.text
link = item.link.text
image = item.find('media:thumbnail')[0]['url']
但是,我得到 'NoneType' object is not subscriptable
错误。
不包含命名空间前缀:
>>> doc.find('thumbnail')
<media:thumbnail height="51" url="http://i2.cdn.turner.com/cnn/dam/assets/150116173806-amateur-video-amedy-coulibaly-top-tease.jpg" width="90"/>
element.find()
方法returns一个元素,所以这里不需要订阅;您可以直接访问元素上的 url
属性:
>>> doc.find('thumbnail')['url']
u'http://i2.cdn.turner.com/cnn/dam/assets/150116173806-amateur-video-amedy-coulibaly-top-tease.jpg'
目前不支持通过特定命名空间进行搜索;命名空间 URL 被存储(在 .namespace
属性中)但未被 .find()
或 .find_all()
.
使用
使用 BeautifulSoup 解析 media:thumbnail
标签的 url
属性的正确方法是什么?我尝试了以下方法:
doc = BeautifulSoup(urlopen('http://rss.cnn.com/rss/edition.rss'), 'xml')
items = doc.findAll('item')
for item in items:
title = item.title.text
link = item.link.text
image = item.find('media:thumbnail')[0]['url']
但是,我得到 'NoneType' object is not subscriptable
错误。
不包含命名空间前缀:
>>> doc.find('thumbnail')
<media:thumbnail height="51" url="http://i2.cdn.turner.com/cnn/dam/assets/150116173806-amateur-video-amedy-coulibaly-top-tease.jpg" width="90"/>
element.find()
方法returns一个元素,所以这里不需要订阅;您可以直接访问元素上的 url
属性:
>>> doc.find('thumbnail')['url']
u'http://i2.cdn.turner.com/cnn/dam/assets/150116173806-amateur-video-amedy-coulibaly-top-tease.jpg'
目前不支持通过特定命名空间进行搜索;命名空间 URL 被存储(在 .namespace
属性中)但未被 .find()
或 .find_all()
.