提取文本值并附加到python中的列表

时间:2016-12-05 09:52:42

标签: python html

我需要提取HTML标记之间的所有值,并使用Python将它们附加到列表中。

原始数据:

<BR><DIV CLASS="c5"><P CLASS="c9"><SPAN CLASS="c2">a</SPAN></P>
<P CLASS="c9"><SPAN CLASS="c2">b</SPAN></P>
</DIV>
<BR>
<!-- Hide XML section from browser
</DOCFULL>
</DOC> -->
<DIV CLASS="c10">&nbsp;</DIV>
<A NAME="DOC_ID_0_1"></A><!-- Hide XML section from browser
<DOC NUMBER=2>
<DOCFULL> -->
**<<BR><DIV CLASS="c5">
<P CLASS="c9"><SPAN CLASS="c2">c</SPAN></P>
<P CLASS="c9"><SPAN CLASS="c2">d</SPAN></P>
<P CLASS="c9"><SPAN CLASS="c2">e</P>
</DIV>

在上面的原始数据中,我需要提取&lt;内部的文本值。所有文本数据&gt;


并将它们附加到列表中。我需要为所有类似的标签组合做同样的事情。

我尝试过的解决方案:

textpattern="\<P CLASS=\"c9\"\><SPAN CLASS=\"c2\"\>(.*)\</SPAN>"
textpatternvalues=[a.strip("*") for a in re.findall(textpattern,response,re.MULTILINE)]
textvalues = re.sub(cleanr, '', str(textpatternvalues))
print(textvalues)

我获得的解决方案:注意:这里我没有写出原始结果,因为数据非常庞大。所以我写了一个结果如何的样本。

['a','b','c','d','e']

&LT;&LT;在这里,我将每个段落的文本作为一个整体添加到单个列表中,其中<P class=c9> * </P><BR>之间的文本应该如下所示,即它应该在第一个元素中。以下文本应该在列表的第二个元素中,而不是分开。

预期解决方案:

['a\nb\n','c\n\d\ne']

我也尝试过使用BeautifulSoup,我得到的结果相同。

0 个答案:

没有答案