从“中提取数据”;p";使用python lxml的html元素

从“中提取数据”;p";使用python lxml的html元素,python,html,parsing,lxml,Python,Html,Parsing,Lxml,我想提取phtml元素中的所有数据,但只对“标题”进行不同的处理,例如:标题1 有没有一种方法可以使用pythonlxml? 使用以下代码: parser = etree.HTMLParser(target=MyParser()) etree.HTML(htmlContent, parser) 而类MyParser是: class MyParser(object): def start(self, tag, attrib): pass def end(self,

我想提取
p
html
元素中的所有数据,但只对“标题”进行不同的处理,例如:
标题1

有没有一种方法可以使用
python
lxml
? 使用以下代码:

parser = etree.HTMLParser(target=MyParser())
etree.HTML(htmlContent, parser)
类MyParser
是:

class MyParser(object):
    def start(self, tag, attrib):
        pass
    def end(self, tag):
        pass
    def data(self, data):
        --> Here, differentiate between "normal data" and <strong>data</strong>
    def close(self):
        pass
我想做的示例:
假设我将所有数据聚合为一个
字符串
,我只想突出显示标题。
现在我无法区分,因此我的字符串如下所示:

header1 data data data 1... header2 data data data 2...
我想强调一下,就是这样:

[[header1]] data data data 1... [[header2]] data data data 2...

简而言之,您需要实现类
MyParser


当看到元素的开始标记时,将其推到堆栈上。当看到元素的结束标记时,将其从堆栈中弹出。当接收到数据时,您将知道您所在的标签是什么:堆栈上的顶部标签。状态机模式通常适用于此类解析需求。

什么是
,但仅对“头”进行不同处理,例如:header1
的意思?请您再解释一下好吗?您能展示一下您的示例输入的预期结果吗?假设我将所有数据聚合在一个
字符串中,我只想突出显示标题。现在我无法区分,所以我的字符串应该是:
header1数据1。。。标题2数据2…
。我想这样强调它:
[[header1]]数据1。。。[[header2]]data 2…
问题是我无法区分标记中的数据。我怎样才能知道什么是
标题1
什么不是?@hudac:我描述了如何知道“strong”标记中有什么和没有什么。到目前为止你试过什么?在
MyParser
的方法中是否有代码?那门课的哪些部分你懂,哪些部分你不懂?谢谢,我想我看不到
strong
标签,但我可以。
[[header1]] data data data 1... [[header2]] data data data 2...