如何最好地用正则表达式筛选抓取HTML文件


How best to screen scrape HTML files with regular expressions

可能重复:
RegEx匹配除XHTML自带标签之外的开放标签

我正在研究一个正则表达式,以帮助从由各种字符php和JavaScript程序生成的非常大的html文件中提取数据模式。我所需要的只是匹配下面这两行这样的图案

<div id="slotqty" class="slotqty" title="<br>Start Date: 04/08/2011<br>End Date  : 04/08/2011<br>">113.67</div></div></div>
<div id="slotcity" class="slotcity">RICE</div><div id="slotqty" class="slotqty" title="<br>"Start Date: 04/06/2011<br>End Date  : 04/06/2011<br>">57</div></div></div>

从一个非常加载的html文件。到目前为止,编码是

<?php
$url = "http//wwww.amamamamama.com/example";
$file = file_get_contents($url);
preg_match_all ('/[^<div id="slotqty" class="slotqty" title="<br>] + </div>{3,3}$/', $url, $output);
echo "<pre>";
print_r ($output);
echo "</pre>";
?>

有什么想法可以比这个更好地解决这个问题。提前感谢您的帮助,

John

虽然我不会乘坐"正则表达式很糟糕"的火车(其他人可以告诉你,或者只是四处打听(,但我只会提供一个替代方案,除非你特别必须使用正则表达式。

PHP Simple HTML Dom Parser是一个使用起来非常简单的scraper,它允许各种各样的scrape方法。使用它将有助于减轻使用正则表达式时可能出现的一些混乱和麻烦,如果您正在抓取的内容发生了更改,则可以快速进行适当的更改,而无需重写整个正则表达式。(更易于维护(