我使用馈电分析器解析rss (如https://www.relay.fm/analogue/feed ),但无法确定如何显式地标识itunes:category值。
查看反馈解析器itunes测试,itunes:keywords和itunes:category值似乎都被放入了feed['tags']字典中。
来自category的测试
<!--
Description: iTunes channel category
Expect: not bozo and feed['tags'][0]['term'] == 'Technology'
-->
<rss xmlns:itunes="http://www.itunes.com/DTDs/Podcast-1.0.dtd">
<channel>
<itunes:category text="Technology"></itunes:category>
</channel>
</rss>然后是keywords
<!--
Description: iTunes channel keywords
Expect: not bozo and feed['tags'][0]['term'] == 'Technology' and
'itunes_keywords' not in feed
-->
<rss xmlns:itunes="http://www.itunes.com/DTDs/Podcast-1.0.dtd">
<channel>
<itunes:keywords>Technology</itunes:keywords>
</channel>
</rss>对于上面的示例提要,条目如下:
<itunes:keywords>Hurley, Liss, feelings</itunes:keywords>和
<itunes:category text="Society & Culture"/>
<itunes:category text="Technology"/>其结果是按如下方式填充feed[tags]:
[{'label': None, 'scheme': 'http://www.itunes.com/', 'term': 'Hurley'},
{'label': None, 'scheme': 'http://www.itunes.com/', 'term': 'Liss'},
{'label': None, 'scheme': 'http://www.itunes.com/', 'term': 'feelings'},
{'label': None,'scheme': 'http://www.itunes.com/','term': 'Society & Culture'},
{'label': None, 'scheme': 'http://www.itunes.com/', 'term': 'Technology'}]有没有办法唯一地标识来自itunes:category标记的值?
发布于 2018-08-24 13:46:00
发布于 2021-05-07 22:59:28
Feed分析器诉6.0.2实现特定的itunes:x属性
itunes:category在feedparser解析器中可作为category提供。import feedparser
feedp = feedparser.parse(url)
category = feedp.feed.category itunes:keywords确实在indeed解析器中被重命名为tags,并被填充到term中。但是,通道关键字与项目关键字混合使用scheme作为过滤器来分别识别项目关键字。
import feedparser
feedp = feedparser.parse(url)
#get all the keywords both item and channel
keywords = [k["term"] for k in feedp["feed"]["tags"]]
# get the keywords from all the items
keyword = [t["term"] for t in feedp["feed"]["tags"] if t["scheme"] == 'http://www.itunes.com/']如果可用,这可能会擦除其他标记,但如果itunes:关键字和标记共存,则它们是重复的。
itunes:duration可作为itunes_duration提供import feedparser
feedp = feedparser.parse(url)
duration = feedp["itunes_duration"] 有点离题,但要完整地回答:
如果有多个类别可用,它们将以元组的形式公开,如文档中所述。
>>>import feedparser
>>>feedp = feedparser.parse(url)
>>>categories = feedp.feed.categories
>>>print(categories)
>>>[(u'Syndic8', u'1024'),
(u'dmoz', 'Top/Society/People/Personal_Homepages/P/')]但itunes没有多个类别..。
不需要再用beautifulSoup4进行解析了。
https://stackoverflow.com/questions/51962329
复制相似问题