gpt4 book ai didi

python - 通过 BeautifulSoup 返回 RSS 属性值

转载 作者:行者123 更新时间:2023-12-01 04:40:52 25 4
gpt4 key购买 nike

RSS:(在名为 myfeed.rss 的文件中)

<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:newznab="http://www.newznab.com/DTD/2010/feeds/attributes/">
<channel>
<title>MyFeed</title>
<link>http://website</link>
<description>RSS Feed</description>
<language>en-us</language>

<item>
<title>title goes here</title>
<pubDate>Tue, 09 Jun 2015 15:15:23 -0600</pubDate>
<category>x264</category>
<link>https://link_goes_here</link>
<description>various HTML goes here</description>
<guid>https://another_link_goes_here</guid>
<newznab:attr name="category" value="6000" />
<newznab:attr name="category" value="6040" />

<newznab:attr name="size" value="1923203792" />

<newznab:attr name="grabs" value="3" />

<newznab:attr name="comments" value="0" />
<newznab:attr name="password" value="0" />
<newznab:attr name="usenetdate" value="Tue 09 Jun 2015 15:15:23 -0600" />
</item>

</channel>
</rss>

Python 脚本:

#!/usr/bin/env python

import sys
from bs4 import BeautifulSoup

handler = open('myfeed.rss').read()
soup = BeautifulSoup(handler, 'xml')

for item in soup.findAll('item'):
print item
print("-----------------------------------")
print item.findAll('newznab:attr')

结果:总共打印了一项。我的分隔线打印出来。但没有打印任何 newznab 属性。

问题:如何访问每个“newznab”属性?目前,我无法弄清楚如何将它们作为字典检索。我对 Python 还很陌生。 :)

谢谢。

编辑:感谢 Rick 的建议,我现在能够按照以下方式访问这些属性:

更新的 Python 脚本:

#!/usr/bin/env python

import sys
from bs4 import BeautifulSoup

handler = open('myfeed.rss').read()
soup = BeautifulSoup(handler, 'lxml')

for item in soup.findAll('item'):
print item
print("-----------------------------------")

newznabs = item.findAll('newznab:attr')
newz_dict = {}

for attribute in newznabs:
newz_dict[attribute['name'].split(".")[0]] = attribute['value'].split(".")[0]

print("newz_dict: [{}]".format(newz_dict))
print("size: [{}]".format(newz_dict['size']))

print("+++++++++++++++++++++++++++++++++++")

现在我在字典中拥有了属性。 :)

最佳答案

告诉 BeautifulSoup 使用 lxml 解析器似乎保留了自闭合标签。

尝试使用:

soup = BeautifulSoup(handler, 'lxml') 

关于python - 通过 BeautifulSoup 返回 RSS 属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30744547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com