2012-05-07 55 views
-1

我真的处理HTML页面的HTML标签内容终于结束了这样的台词:如何提取使用Python的HTMLParser

<td class="border">AAA</td><td class="border">BBB</td> 

我需要AAA和BBB提取到wwith HTMLParser的变量,我想不出如何做到这一点。 我不能使用任何其他解析器,导致我在python工具中受限。 任何帮助,将不胜感激。

回答

4

这将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 
+0

的答案非常感谢,这个例子更是比比皆是。虽然,我不觉得它很简单。我对这样一个事实感到困惑,为了做最简单的事情,对于这个模块应该用于什么目的,我需要创建子类并用某些东西重写某些东西。我希望有一个更简单的方法来做到这一点,或者我只是用正则表达式来解析。 –

+1

做你想做的,但a)除了保存项目,这是你想要的,b)它已经写好,c)它只有大约20行代码。而且你知道HTML通常不能被正则表达式正确解析,对吧? (这就是为什么像HTMLParser这样的东西存在的原因。) –

+1

“用某物重写某些东西”是什么意思? –