【问题标题】:parsing html using pcre in python re module [closed]在python re模块中使用pcre解析html [关闭]
【发布时间】:2015-05-20 01:45:30
【问题描述】:

我想用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>

我想获取内容&lt;p&gt;~&lt;/ul&gt;

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

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

此 pcre 在 notepad++ 或 Regex Coach 中运行良好

但在 python 中它无法解析!

它只显示像[]这样的空列表

【问题讨论】:

  • no... 我的目标是找到特定的内容,例如示例,并在

    之间找到名称。所以我找到了所有内容,例如示例。我的 pcre 在 Regex Coach 中工作得很好。但不要在 python re
    中工作
  • 这个问题在这里可能已经有了答案:必须取消

标签: python pcre


【解决方案1】:

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

temp=re.findall(r"<li>(\d{4}-\d{2}-\d{2} {\d:]{8}).* - (.*) - GET (.*)<\/li>",html)
for i in temp:
    print i

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

【讨论】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-09
      • 2013-08-22
      • 2011-12-01
      • 2010-10-17
      • 1970-01-01
      • 1970-01-01
      • 2016-03-23
      • 1970-01-01
      相关资源
      最近更新 更多