Python通过CSS选择器获取跨度值
我想通过CSS选择器提取跨度的值Python通过CSS选择器获取跨度值,python,html,css,Python,Html,Css,我想通过CSS选择器提取跨度的值 soup = BeautifulSoup("<body><main><div class='rentalprice'><span>3.000</span></div></main></body>") pagecontent = soup.find('body') price = pagecontent.main.div.span.text # t
soup = BeautifulSoup("<body><main><div class='rentalprice'><span>3.000</span></div></main></body>")
pagecontent = soup.find('body')
price = pagecontent.main.div.span.text # this line works although it's not suitable for production since I've now ignored the div class selector
#I then tried this:
price = pagecontent.select('main div.rentalprice span').text
最后一行抛出错误:
发生异常:AttributeError。ResultSet对象没有属性“text”。您可能将元素列表视为单个元素。当你打算给find打电话时,你给find打电话了吗
我怎样才能解决这个问题?我不想使用for循环,因为只有1个跨度匹配
我已经检查过:
选择返回元素列表,但只能在单个元素上使用.text
如果确定只有1个span匹配,则可以将select返回的列表中的第一个元素作为目标:
否则,可以使用for循环:
for elem in pagecontent.select('main div.rentalprice span'):
print(elem.text)
使用。查找
for elem in pagecontent.select('main div.rentalprice span'):
print(elem.text)
from bs4 import BeautifulSoup
soup = BeautifulSoup("<body><main><div class='rentalprice'><span>3.000</span></div></main></body>", 'html.parser')
pagecontent = soup.find('body')
price = pagecontent.find('span').text
print(price) # 3.000