使用PHP从HTML中提取数据

时间:2010-09-06 08:23:48

标签: php html extract html-content-extraction

以下是我要找的内容:

我有一个链接,显示HTML格式的一些数据:

http://www.118.com/people-search.mvc...0&pageNumber=1

数据格式如下:

<div class="searchResult regular"> 

Bird John

  56 Leathwaite Road
伦敦
SW11 6RS     020 7228 5576  

我希望我的PHP页面基于以上标签为执行以上URL和结果HTML页面中的提取/解析数据 H2 =名称 地址=地址 telephoneNumber =电话号码

并以表格格式显示它们。

我得到了这个,但它只显示了HTML页面的TEXT格式,但在一定程度上起作用:

<?
function get_content($url) 
{ 
$ch = curl_init(); 

curl_setopt ($ch, CURLOPT_URL, $url); 
curl_setopt ($ch, CURLOPT_HEADER, 0); 

ob_start(); 

curl_exec ($ch); 
curl_close ($ch); 
$string = ob_get_contents(); 

ob_end_clean(); 

return $string; 

} 


$content = get_content("http://www.118.com/people-search.mvc?Supplied=true&Name=william&Location=Crabtree&pageSize=50&pageNumber=1"); 
echo $content;
$content = get_content("http://www.118.com/people-search.mvc?Supplied=true&Name=william&Location=Crabtree&pageSize=50&pageNumber=2"); 
echo $content;
$content = get_content("http://www.118.com/people-search.mvc?Supplied=true&Name=william&Location=Crabtree&pageSize=50&pageNumber=3"); 
echo $content;
$content = get_content("http://www.118.com/people-search.mvc?Supplied=true&Name=william&Location=Crabtree&pageSize=50&pageNumber=4"); 
echo $content;

?>

1 个答案:

答案 0 :(得分:4)

您需要使用dom解析器Simple HTML或类似的

将文件读入dom对象并使用适当的选择器进行解析:

$html = new simple_html_dom("http://www.118.com/people-search.mvc...0&pageNumber=1");

foreach($html->find(.searchResult+regular) as $div) {
  //parse div contents here to extract name and address etc.
}
$html->clear();
unset($html);

有关详细信息,请参阅Simple HTML文档。