【问题标题】:Matching Multiple 'id' Values Using RegEx in Combination with HTML::TreeBuilder使用 RegEx 结合 HTML::TreeBuilder 匹配多个“id”值
【发布时间】:2014-03-11 06:31:03
【问题描述】:

我有一个数组中的 URL 列表:

http://www.site.sx/doc1.html
http://www.site.sx/doc2.html
http://www.site.sx/doc3.html
.
.
.

我们来看第一页的内容,即doc1.html:

<?xmlversion = "1.0" encoding = "utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
     "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
   <head>
      <title>Birds</title>
   </head>

   <body>
      <p>Some bird's feather's aren't actually blue, they're clear.</p>
      <!--LOOK HERE--><p id = "abc123FACT1xyz789">There exists an insect that makes 100-decibel sounds.</p> 
   </body>
</html>

现在,我们来看第二页的内容,即doc2.html:

<?xmlversion = "1.0" encoding = "utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
     "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
   <head>
      <title>Cats</title>
   </head>

   <body>
      <p>Moota goes from house to house.</p>
      <!--LOOK HERE--><p id = "abc123FACT2xyz789">Falling from a higher altitude might be better than a lower one.</p> 
   </body>
</html>

doc3.html 的ìd 值将具有相同的abc123.....xyz789-type 模式,我数组中的其余页面也是如此。我想捕捉每一个的文本内容。每个具有这种特定模式的文档中只有一个 id 值。当然,实际上整个文档中有多个 id 值,但是——为了简单起见——我们可以忽略这一点。


大图:我想把每场比赛都这样:

$tree->look_down( _tag => 'p' , id => "abc123.*xyz789")->as_text; # NOT SURE HOW TO MAKE AN ARRAY OF MATCHES...

【问题讨论】:

  • 你知道的,dictionary = dict(zip(TITLES, URLS)),什么的。
  • 你说了你想要的,但问题是什么?
  • @mrhobo,看看我的编辑。
  • 给我们更多的ID。如果您给我们一个字符串示例而不告诉我们 id 是什么,我们将找不到模式。
  • @mrhobo,什么?真的吗?我在解释事情上一定很糟糕......好吧,试试这个,看看我的编辑 - 正在进行中。

标签: python regex dictionary tree html-tree


【解决方案1】:
my $match = $tree->look_down( _tag => 'p' , id => qr{abc123.*xyz789} )->as_text;

这将得到我所追求的。

【讨论】:

    猜你喜欢
    • 2013-11-05
    • 1970-01-01
    • 2018-02-14
    • 2014-03-11
    • 1970-01-01
    • 2013-01-02
    • 2010-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多