from mechanize import Browser
br = Browser()
br.open('http://somewebpage')
html = br.response().readlines()
for line in html:
print line
在HTML文件中打印一行时,我试图找到一种方法,只显示每个HTML元素的内容,而不显示格式本身。如果它找到'<a href="whatever.com">some text</a>'
,它将只打印“一些文本”,“打印”hello“等。如何着手这样做?
我总是使用这个函数来去除HTML标记,因为它只需要Python stdlib:
关于Python 2
对于Python 3
注意:这只适用于3.1。对于3.2或更高版本,需要调用父类的init函数。见Using HTMLParser in Python 3.2
为什么你们都这么辛苦? 您可以使用BeautifulSoup
get_text()
功能。我还没想太多它会错过的情况,但你可以做一个简单的正则表达式:
对于那些不理解regex的人,这将搜索一个字符串
<...>
,其中的内部内容由一个或多个不是<
的(+
)字符组成。?
意味着它将匹配它能找到的最小字符串。例如给定<p>Hello</p>
,它将分别与<'p>
和</p>
匹配。没有它,它将匹配整个字符串<..Hello..>
。如果非标记
<
出现在html中(例如2 < 3
),那么它应该作为转义序列&...
写入,因此^<
可能是不必要的。相关问题 更多 >
编程相关推荐