在python中打印带下划线的文本

时间:2014-03-22 06:23:08

标签: python

我已尝试使用以下代码在html文件中查找带下划线的文本,但它无效。

f=open("jk.html","r")
while True:
    for line in f.read():
        for i in line.split():
            j=i.find("<ul>")
            k=i.find("</ul>")
            for m in range(j, k):
                print(m)

f.close()

这是我的HTML文件:

<html>
<body>
   <ul> hill </ul>
   <p> millfhhf </p>
</body>
</html>

2 个答案:

答案 0 :(得分:1)

如果您使用BeautifulSoup模块,这将变得非常简单,这将更好地解析HTML(特别是如果它是凌乱的HTML)。

import bs4

f = open("test.html")
soup = bs4.BeautifulSoup(f)

for underlined in soup.find_all('u'):
    print underlined.get_text()

此外,HTML中带下划线的文字标记为&lt; u&gt;

<html>
<body>
   <p>
       <u> hill </u>
       <u> millfhhf </u>
   </p>
</body>
</html>

答案 1 :(得分:0)

此代码不起作用,因为read()返回文件的其余部分,然后您通过char迭代它。对于行使用readline()或只是迭代文件:

for line in fp:
    # do whatever

也就是说,使用htmlparserBeautifulSoup或XML解析器进行任何可靠的解析。

此外,下划线的标记为<u>,而不是<ul>