【发布时间】:2020-08-18 05:10:52
【问题描述】:
我有一个 HTML 文件,我用 Python 阅读,我想在打印时自定义它。
首先我要打印国家名称,然后是他们所属国家的玩家名称。
我的 HTML 文件如下所示:
<ul>
<li>
Australia
<ol>
<li>Steve Smith</li>
<li>David Warner</li>
<li>Aaron Finch</li>
</ol>
</li>
<li>
Bangladesh
<ol>
<li>Shakib Al Hasan</li>
<li>Tamim Iqbal</li>
<li>Mushfiqur Rahim</li>
</ol>
</li>
<li>
England
<ol>
<li>Ben Stokes</li>
<li>Joe Root</li>
<li>Eoin Morgan</li>
</ol>
</li>
现在我想从我的 HTML 文件中抓取这些数据:
Australia - Steve Smith, David Warner, Aaron Finch
Bangladesh - Shakib Al Hasan, Tamim Iqbal, Mushfiqur Rahim
England - Ben Stokes, Joe Root, Eoin Morgan
但我只能用球员的名字来刮。这是我的代码:
import re
file_name = "team.html"
mode = "r"
with open(file_name, mode) as fp:
team = fp.read()
pat = re.compile(r'<li>(.*?)</li>')
result = pat.findall(team)
res = ", ".join([str(player) for player in result])
print(res)
另外,我不使用任何像 bs4 这样的包。我想通过使用正则表达式来解决这个问题。
【问题讨论】:
-
使用 HTML 解析器。
标签: python html regex web-scraping