我想确定beautifulsoup请求的返回结果是否像这样。
Out[32]:
<?xml version="1.0" encoding="utf-8"?>
<boardgames termsofuse="https://boardgamegeek.com/xmlapi/termsofuse">
<boardgame>
<error message="Item not found"/>
</boardgame>
</boardgames>
我可以使用以下命令提取上一个输出的中心
:soup.find_all('boardgame')[0], which produces the following:
Out[24]:
<boardgame>
<error message="Item not found"/>
</boardgame>
我觉得这应该很简单,我尝试了以下方法,但是我仍然无法确定是否存在“错误消息=“找不到项目”。我在这里错过了什么?>
soup.findAll('boardgame')[0].getText()
Out[26]: '\n\n'
答案 0 :(得分:2)
使用属性message
获取值。如果先找到error
标签,然后使用属性message
from bs4 import BeautifulSoup
data='''<?xml version="1.0" encoding="utf-8"?>
<boardgames termsofuse="https://boardgamegeek.com/xmlapi/termsofuse">
<boardgame>
<error message="Item not found"/>
</boardgame>
</boardgames>'''
soup=BeautifulSoup(data,'html.parser')
message=soup.find('boardgame').find('error')['message']
print(message)
输出:
找不到商品
或者您可以使用CSS选择器
from bs4 import BeautifulSoup
data='''<?xml version="1.0" encoding="utf-8"?>
<boardgames termsofuse="https://boardgamegeek.com/xmlapi/termsofuse">
<boardgame>
<error message="Item not found"/>
</boardgame>
</boardgames>'''
soup=BeautifulSoup(data,'html.parser')
message=soup.select_one('boardgame error')['message']
print(message)
输出:
找不到商品