在python re模块中使用pcre解析html

时间:2015-05-20 01:45:31

标签: python pcre

我想在html中解析下面的例子

示例是特定html的一部分。

<p>NUCLEAR EK:</p>

<ul>
<li>2015-01-29 17:22:12 UTC - culturemerge.ga - GET /AgJVAhoAGFpMUAVU.html</li>
<li>2015-01-29 17:22:13 UTC - culturemerge.ga - GET /AU4STwAHU1NMUUlcSlMHVAFRVwJTB1RKVx1XA1ZMAVUFSgRWTwBfVg</li>
<li>2015-01-29 17:22:15 UTC - culturemerge.ga - GET /Al8OVhpVUFUBHgYYDh4CUgFWVwVQBFYGHgZIAlRQHlMCVBhQBxoGGDpaIEUi</li>
<li>2015-01-29 17:22:17 UTC - culturemerge.ga - GET /Al8OVhpVUFUBHgYYDh4CUgFWVwVQBFYGHgZIAlRQHlMCVBhQBxoGGBpgEF8mYRhdIk9W</li>
<li>2015-01-29 17:22:21 UTC - culturemerge.ga - GET /Al8OVhpVUFUBHgYYDh4CUgFWVwVQBFYGHgZIAlRQHlMCVBhQBxoEGDpaIEUi</li>
<li>2015-01-29 17:22:22 UTC - culturemerge.ga - GET /Al8OVhpVUFUBHgYYDh4CUgFWVwVQBFYGHgZIAlRQHlMCVBhQBxoEGBpgEF8mYRhdIk9W</li>
<li>2015-01-29 17:22:23 UTC - culturemerge.ga - GET /AU4STwAHU1NMUUlcSlMHVAFRVwJTB1RKVx1XA1ZMAVUFSgRWTxVaCBRVEA</li>
<li>2015-01-29 17:22:25 UTC - culturemerge.ga - GET /Al8OVhpVUFUBHgYYDh4CUgFWVwVQBFYGHgZIAlRQHlMCVBhQBxoLGDpaIEUi</li>
<li>2015-01-29 17:22:28 UTC - culturemerge.ga - GET /Al8OVhpVUFUBHgYYDh4CUgFWVwVQBFYGHgZIAlRQHlMCVBhQBxoLGBpgEF8mYRhdIk9W</li>
</ul>

我想获得内容<p>~</ul>

所以我在下面制作了pcre python代码:

temp=re.findall(r"<p>[^\"\&\;]*?<\/p>\s*<ul>\s*<li>\d(.|\s)*?<\/ul>",html)
        print temp

这个pcre在记事本++或Regex Coach中运行良好

但在python中它无法解析!

它只显示[]

这样的空列表

2 个答案:

答案 0 :(得分:0)

虽然我同意你不应该使用regexp来解析html,但有时它还可以。在这种情况下,我看到某种模式,但我不太确定你想从html中提取什么。我只是重写你的正则表达式希望它是你正在寻找的东西:

a.indexOf(b)

temp将包含包含此数据的元组(日期,域,路径)

答案 1 :(得分:0)

    temp=re.finditer(r"<p>[^\"\&\;]*?<\/p>\s*<ul>\s*<li>\d(.|\s)*?<\/ul>",html)
    for match in temp:
        print match.group(0)