使用Python从中提取html文件中的字符串(beautifulsoup?)

时间:2013-03-24 04:27:43

标签: python html parsing beautifulsoup

我的硬盘上保存了一个html文件,我需要提取html页面上显示的字符串并使用python将它们保存到文本文件中。

html representation with tags, etc: 
Bme:&nbsp;1&nbsp;Port:&nbsp;1<br />
Downstream&nbsp;line&nbsp;rate:&nbsp;6736&nbsp;kbps<br />
Upstream&nbsp;line&nbsp;rate:&nbsp;964&nbsp;kbps<br />

我需要从上面提取的是

之后的数字
Downstream&nbsp;line&nbsp;rate:&nbsp;

在这种情况下,6736,并将此数字写入文件。怎么能实现这一目标?

1 个答案:

答案 0 :(得分:2)

BeautifulSoup可能有点矫枉过正了。如果所有“下游”行的格式都是这样,那么您可以轻松地使用正则表达式获取这些数字。

>>> import re
>>> regex = r'Downstream&nbsp;line&nbsp;rate:&nbsp;(\d\d*)&nbsp;kbps<br />'
>>> re.search(regex, "Downstream&nbsp;line&nbsp;rate:&nbsp;6736&nbsp;kbps<br />").group(1)
'6736'

如果所有行的格式都不完全相同,则可能必须使正则表达式更加通用。可能类似于r'Downstream.*(\d\d*)'