【发布时间】:2015-07-04 18:29:11
【问题描述】:
使用以下 txt 文件的正确输出应该是:PlayerA 29.2 PlayerB 32.2
我有一个 txt 文件,其中包含如下所示的 html, 我正在尝试使用 python 2.6 正则表达式来收集所有玩家姓名和评分。
玩家名字第一次出现在第 4 行,评分出现在第 16 行。(29.2)
然后下一个玩家的名字出现在第 22 行,评分出现在第 35 行。 等等……
fileout = open('C:\Python26\hotcold.txt')
read_file = fileout.readlines()
source = str(read_file)
expression = re.findall(r"(LS=113>.+?", source)
print expression
我试图创建一个可以找到所有名称和评级的表达式,但它不起作用..
<tr class="stats">
<td class="stats" colspan="1" valign="top">
<a href="index.php?c=playerview&P=245&LS=113">
PlayerA
</a>
</td>
<td class="stats" colspan="1" valign="top">
<b>
4
</b>
,
<b>
8
</b>
</td>
<td class="stats" colspan="1" valign="top">
29.2
</td>
<tr class="stats">
<td class="stats" colspan="1" valign="top">
<a href="index.php?c=playerview&P=245&LS=113">
PlayerB
</a>
</td>
<td class="stats" colspan="1" valign="top">
<b>
4
</b>
,
<b>
8
</b>
</td>
<td class="stats" colspan="1" valign="top">
32.2
</td>
【问题讨论】:
-
考虑使用 BeautifulSoup?
-
是的,我使用 BS 来获取 html,但我不知道如何只选择文本文件的那些特定部分。
-
你是如何使用 BeautifulSoup 获取 hml 的?
-
抱歉用汤美化和find_all tr,class,a
-
使用上述 html 的正确输出应该是:PlayerA 29.2 PlayerB 32.2