从“中提取数据”;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...