2009-07-17 4 views
1

Я хотел бы получить контент страницы и переформатировать его по своему вкусу ...PHP-извлечения содержимого из страницы

Например:

  • Перейти к example.com
  • Получить содержания в тегах с классом «х»
  • содержание Пасс к определенным переменным
  • выплюнуть содержание в некоторых довольно form..array, CSV, XML ...

Не слишком сложно, не так ли? Я PHP noob! :)

ответ

2

Попробуйте использовать PHP Simple HTML DOM Parser.

Вы можете сделать хороший материал, как это:

// Create DOM from URL or file 
$html = file_get_html('http://www.google.com/'); 

// Find all images 
foreach($html->find('img') as $element) 
     echo $element->src . '<br>'; 

// Find all links with class=x 
foreach($html->find('a[class=x]') as $element) 
     echo $element->href . '<br>'; 
0

XSD может сделать трюк для вас. Я также рассмотрю wget + CSS ...

1

Для получения данных, есть три уровня сложности:

file_get_contents($url); //easy 

К сожалению, многие сайты не очень отзывчивы на правильный пользовательский агент. Здесь у вас есть два варианта. Он немного сложнее, чем другой. Промежуточное является Zend HTTP Client

$client = Zend_Http_Client(); //make sure to include Zend_Http, etc. 
$client->setConfig($params); // params will include proper user agent 
$client->setUri($aUrl); 
$html = $client->request()->getBody(); 

Вариант три, которые Вы не могли бы даже рассмотреть, если вы действительно хотите, чтобы держать его больше сценариев, чем объектно-ориентированный, заключается в изучении РНР cURL functionality

Есть несколько PHP- родные способы доступа к данным HTML через объект DOM, но моим фаворитом является Simple HTML DOM Parser. Это очень похоже на навигацию DOM в стиле jQuery/CSS.

$domObject = new Simple_HTML_Dom($html); 
foreach ($domobject->find('div#theDataYouWant p') as $sentence) 
{ 
    echo "<h3>{$sentence}</h3>"; 
} 
Смежные вопросы