无法从美丽汤中获取 p 类=信息<span>标签数据



无法获取标签数据,无法从美丽汤中获取p class=info标签数据,谢谢!

from bs4 import BeautifulSoup 
import re
html = """"
<p class="info">
<span>Kranji Mile Day simulcast races, 
Kranji Racecourse, SIN</span>
<span>Class 3 Handicap   -  1200M TURF</span>
<span>Saturday, 26 May 2018</span>
<span>Race 1, 5:15 PM</span>
</p>
"""
soup = BeautifulSoup(html, "html.parser")
table = soup.find('p', attrs={class:'info'})
rows = table.findAll("span")
print rows

以逗号分隔的预期输出

Kranji Mile Day simulcast races, Kranji Racecourse, SIN , Class 3, Handicap, 1200M, TURF, Saturday, 26 May 2018, Race 1, 5:15PM

解决class问题后,如另一个答案所述,您仍然必须从标签中提取字符串:

result = ', '.join(r.string for r in rows)
print(result)
#Kranji Mile Day simulcast races, 
# Kranji Racecourse, SIN, Class 3 Handicap   -  1200M TURF, Saturday, 26 May 2018, Race 1, 5:15 PM

它是class_,因为类是保留关键字

table = soup.find('p', attrs={'class':'info'})
table = soup.find('p',class_='info'})

使用文本属性,它连接标签内的所有文本

如果字符串属性中包含另一个标签,则它不起作用

print (', '.join(i.text for i in rows)) # For getting text 

嗯 - 在 python3 中,如果您只是在此行中引用"class",这对我来说很好用

table = soup.find('p', attrs={'class':'info'})
^

虽然输出将是...元素,而不仅仅是文本。 您想要元素还是仅需要文本?

相关内容

最新更新