Python 3.x 在<;span>;标签
我刚刚接触python,在获取标记之间的文本时遇到了麻烦,下面是完整表的htmlPython 3.x 在<;span>;标签,python-3.x,Python 3.x,我刚刚接触python,在获取标记之间的文本时遇到了麻烦,下面是完整表的html <div id="menu"> <h4 style="display:none">Horse Photo</h4> <ul style="margin-top:5px;border-radius:6px"> <li style="padding:0"> <img src="/images/unk
<div id="menu">
<h4 style="display:none">Horse Photo</h4>
<ul style="margin-top:5px;border-radius:6px">
<li style="padding:0">
<img src="/images/unknown_horse.png" style="width:298px;margin-bottom:-3px;border-radius:5px;">
</li>
</ul>
<h4>Horse Profile</h4>
<ul>
<li>Age<span>3yo</span></li>
<li>Foaled<span>17/11/2014</span></li>
<li>Country<span>New Zealand</span></li>
<li>Location<span>Kembla Grange</span></li>
<li>Sex<span>Filly</span></li>
<li>Colour<span>Grey</span></li>
<li>Sire<span>Mastercraftsman</span></li>
<li>Dam<span>In Essence</span></li>
<li>Trainer
<span>
<a href="/trainer/26970-r-l-price/">R & L Price</a>
</span>
</li>
<li>Earnings<span>$19,795</span></li>
</ul>
<h4>Owners</h4>
<ul>
<li style="font:normal 12px 'Tahoma">Bell View Park Stud (Mgr: A P Mackrell)</li>
</ul>
</div>
马照
-
马匹侧面图
- 年龄3yo
- Foaled17/11/2014
- 新西兰乡村酒店
- 肯布拉庄园酒店
- 性感的
- 色灰
- 能工巧匠
- 大明本质
- 教练
- 收入19795美元
业主
Bell View公园螺柱(经理:A P Mackrell)
使用HTML/XML有很多选项。我更喜欢parsel
软件包。您可以使用以下命令将其安装到您的环境中:
$ pip install parsel
之后,您可以像这样使用它:
from parsel import Selector
sel = Selector(html)
sel.css('ul li::text').extract()
# ['Age',
# 'Foaled',
# 'Country',
# 'Location',
# 'Sex',
# 'Colour',
# 'Sire',
# 'Dam',
# 'Trainer',
# 'Earnings',
# 'Bell View Park Stud (Mgr: A P Mackrell)']
可以找到更详细的说明。要解析HTML,请使用
beautifulsoup
软件包。这样,您就可以轻松地选择html文档的元素。要打印
标记中的所有文本,可以使用以下示例:
data = """
<div id="menu">
<h4 style="display:none">Horse Photo</h4>
<ul style="margin-top:5px;border-radius:6px">
<li style="padding:0">
<img src="/images/unknown_horse.png" style="width:298px;margin-bottom:-3px;border-radius:5px;">
</li>
</ul>
<h4>Horse Profile</h4>
<ul>
<li>Age<span>3yo</span></li>
<li>Foaled<span>17/11/2014</span></li>
<li>Country<span>New Zealand</span></li>
<li>Location<span>Kembla Grange</span></li>
<li>Sex<span>Filly</span></li>
<li>Colour<span>Grey</span></li>
<li>Sire<span>Mastercraftsman</span></li>
<li>Dam<span>In Essence</span></li>
<li>Trainer
<span>
<a href="/trainer/26970-r-l-price/">R & L Price</a>
</span>
</li>
<li>Earnings<span>$19,795</span></li>
</ul>
<h4>Owners</h4>
<ul>
<li style="font:normal 12px 'Tahoma">Bell View Park Stud (Mgr: A P Mackrell)</li>
</ul>
</div>
"""
from bs4 import BeautifulSoup
soup = BeautifulSoup(data, 'lxml')
for li in soup.select('span'):
if li.text.strip() == '':
continue
print(li.text)
使用
beautifulsoup
你在谷歌上搜索过吗?我会让帕塞尔试试,是的,我在谷歌上搜索过,我也尝试过这个。tables=soup4.find(“div”,{“id”:“menu”})用于tables中的table:try:profiles=table.span用于profiles中的profile:try:print(profile.text)except:pass except:pass对不起,这是一种形式,想把这个地方弄清楚also@Shaun我建议您阅读更多关于Python的内容。您几乎不应该在不提及特定异常的情况下使用except
语句。在这种情况下,我认为除了语句之外,这些语句是完全不必要的。[code]tables=soup4.find(“div”,“id”:“menu”})对于table in tables:try:profiles=table.span对于profiles in profile:try:print(profile.text)除外:通过除外:通过[/code]
3yo
17/11/2014
New Zealand
Kembla Grange
Filly
Grey
Mastercraftsman
In Essence
R & L Price
$19,795