1

有人可以帮助我编写一些代码来从游戏中提取统计数据吗?我可以将 html 放入 BeautifulSoup,但我不知道如何正确格式化正则表达式以获取整个页面的特定数据位。这是我所拥有的:

from urllib import urlopen
from bs4 import BeautifulSoup
import re

content = urlopen('http://www.worldoftanks.com/community/accounts/1000395103-FrankenTank').read()
soup = BeautifulSoup(content)
print soup

如果你能告诉我如何提取一个统计数据,我就能弄清楚其余的。其中一项统计数据是参与的战斗次数(10103),编码如下:

<tr>
<td class=""> Battles Participated: </td>
<td class="td-number-nowidth"> 10 103 </td>
</tr>

谢谢!

坦率

4

2 回答 2

3

搜索树

battles = soup.find('td', 'td-number-nowidth')
if battles:
   print(battles.get_text())
于 2012-10-13T20:20:09.740 回答
0

您要提取的数字之间是否包含该空格?如果是这样,我会做一些看起来像这样的事情:

m = re.search('class="td-number-nowidth">(\d+) (\d+)</td>', soup)
if m:
    print(m.groups())

groups() 返回一个tuple包含“10”和“103”的字符串,因此您可能需要将它们连接在一起并将其保留为string类型或将其解析为int用于您的目的。

matched = m.groups()
num = matched[0] + matched[1]
finalnumber = int(num)
于 2012-10-13T20:22:13.913 回答