如何使用python HTMLPasser提取HTML标记内容
我正在处理HTML页面,最后得到了如下行:如何使用python HTMLPasser提取HTML标记内容,python,html,Python,Html,我正在处理HTML页面,最后得到了如下行: <td class="border">AAA</td><td class="border">BBB</td> 我需要使用HTMLParser将AAA和BBB提取到变量WW中,但我不知道如何简单地完成。 我不能使用任何其他解析器,因为我在python工具方面受到限制。 任何帮助都将不胜感激。这将打印TD标签内的数据: from HTMLParser import HTMLParser inTD = Fa
<td class="border">AAA</td><td class="border">BBB</td>
我需要使用HTMLParser将AAA和BBB提取到变量WW中,但我不知道如何简单地完成。
我不能使用任何其他解析器,因为我在python工具方面受到限制。
任何帮助都将不胜感激。这将打印TD标签内的数据:
from HTMLParser import HTMLParser
inTD = False
# create a subclass and override the handler methods
class MyHTMLParser(HTMLParser):
def handle_starttag(self, tag, attrs):
global inTD
if tag.upper() == "TD":
inTD = True
def handle_endtag(self, tag):
global inTD
if tag.upper() == "TD":
inTD = False
def handle_data(self, data):
global inTD
if inTD:
print data
非常感谢您的回答,这个例子无处不在。不过,我觉得这并不简单。我混淆了这样一个事实:为了做最简单的事情,为了这个模块的目的,我需要创建子类并用一些东西重写一些东西。我希望有一个更简单的方法来做这件事,或者我将只使用regexp来解析。做你想做的,但是a除了保存项目,这做你想做的,b它已经编写好了,c它只有大约20行代码。你知道HTML一般不能被正则表达式正确解析,对吗?这就是HTMLPasser这样的东西存在的原因。用某种东西重写什么意思?非常感谢您的解释。我正在写一个简单的脚本,同时尝试学习python,这就是为什么我不打算复制粘贴我不完全理解的代码行。我不想挖得太深,因为脚本非常简单,实际上可以写在shell上。用一些东西重写一些东西——我想把答案缩短一点。无意冒犯。为什么在这里使用全局成员而不是类成员?似乎完全不合适。