Извлечение данных из HTML с использованием PHP - PullRequest
1 голос
/ 06 сентября 2010

Вот что я ищу:

У меня есть ссылка, которая отображает некоторые данные в формате HTML:

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

Данные поступают в следующем формате:

<div class="searchResult regular"> 

Птица Джон

Литвейт-роуд, 56
Лондон
SW11 6RS 020 7228 5576

Я хочу, чтобы моя страница PHP выполнялась по указанному выше URL-адресу и извлекала / анализировала данные из HTML-страницы результата на основе указанных тегов как h2 = Имя адрес = Адрес phoneNumber = номер телефона

и отображение их в табличном формате.

Я получил это, но он показывает только текстовый формат HTML-страницы, но работает до такой степени:

<?
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 Ответ

4 голосов
/ 06 сентября 2010

Вам необходимо использовать синтаксический анализатор dom Простой 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 .

...