【发布时间】:2016-05-30 18:12:05
【问题描述】:
我正在尝试为
提取文本<im:rating>5</im:rating>
<im:version>1.14</im:version>
来自apple xml的xml,用于使用BeautifulSoup进行应用商店审查。
我的代码是
def getReview():
url = "https://itunes.apple.com/rss/customerreviews/page=1/id=511376996/sortby=mostrecent/xml?l=en&cc=us"
source = requests.get(url)
text = source.text
soup = BeautifulSoup(text, 'xml')
for l in soup.findAll('entry'):
rate=l.find('rating')
author=(l.find('name')).text
appver=l.find('version')
print(rate)
print(author)
print(appver)
当我使用上面的代码时,我得到了作者的文本 &
<im:rating>5</im:rating>
<im:version>1.14</im:version>
对于评级和版本,如果我使用appver=l.find('version').text,那么它会给出错误
appver=l.find('version').text
AttributeError: 'NoneType' object has no attribute 'text'
我只想获取这些评级和版本文本的值。即评级为“5”和版本“1.14”。
需要帮助并提前致谢
【问题讨论】:
-
你确定你真的得到了这个版本吗?我假设基于您当前代码中
appver的错误将是None以获取您遇到的错误。 -
@TadhgMcDonald-Jensen 页面中存在应用程序版本,当我打印 {appver=l.find('version')} 时,它会打印 {
1.14version>} 但我只想用 1.14 代替 { 1.14 } -
只是关于格式化的注释,您可以使用反引号 (`) 来表示代码块,在编辑问题时也有一个 ?为格式化提供进一步帮助的按钮。
-
你是说发布你的代码错误吗?
-
@GauravKumar,简单的回答是第一个条目没有评级或版本
标签: python xml parsing beautifulsoup