我需要通过匹配html中的字符串来提取html中的父标记。 (即) 我有许多原始的html源代码。每个源包含文本值“VIN:*”**和一些字符。此文本值(VIN:*)以各种格式放置在每个源中,如“<;ul>;”、“<;div>;”等。。在
然后我需要提取所有值以及“VIN:*”字符串。这意味着我需要得到它的父标记。在
例如
<div class="class1">
Stock Number:
Z2079
<br>
**VIN:
2T2HK31UX9C110701**
<br>
Model Code:
9424
<img class="imgcert" src="/images/Lexus_cpo.jpg">
</div>
这里有html源代码的“VIN”。与此类似,我有其他html源代码的VIN,格式也不同。在
这些值必须在Python中提取。在
有没有什么方法可以有效地通过匹配Python中的字符串来提取父标记?在
对于一个非常简单的任务,即分析字符串,而不是解析它(解析=构建文本的树表示),您可以:
文本
代码:
^{pr2}$结果
re.DOTALL
必须赋予点符号匹配换行符的能力(默认情况下,正则表达式模式中的点匹配除换行符之外的每个字符)\\1
是指定在被检查字符串的这个位置,必须有第一个组捕获的字符串的相同部分,即([^ >]+)
'(?!.+?<(?!br>)[^ >]+>.+?<br>.+?</\\1>)'
是一个部分,它规定禁止在HTML元素的开始标记和结束标记之间遇到的第一个标记<br>
之前找到除<br>
之外的标记。这一部分是捕捉VIM-part前最近的前一个标记
<br>
如果此部分不存在,则正则表达式
捕获以下结果:
区别在于“技巧”而不是“巴拉迪诺”
我强烈建议在这方面使用BeautifulSoup;它为解析HTML提供了一些非常方便的功能。例如,在这两种情况下,我将如何查找包含“VIN”的每个文本节点:
从那里,您只需遍历该集合,获取每个节点的父节点,获取所述父节点的内容,然后根据需要对其进行解析:
^{pr2}$对于不使用任何xml/html解析器的纯字符串版本,可以尝试正则表达式(re):
相关问题 更多 >
编程相关推荐