PHP-получение содержимого со страницы

Я хотел бы получить содержимое страницы и переформатировать ее по своему вкусу …

Например:

  • Перейти к example.com
  • Получить контент в тегах с помощью класса «x»
  • Передавать содержимое определенным переменным
  • Выплевывайте содержимое в довольно симпатичной форме ..array, csv, xml …

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

Попробуйте использовать 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>'; 

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

 file_get_contents($url); //easy 

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

 $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 PHP

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

 $domObject = new Simple_HTML_Dom($html); foreach ($domobject->find('div#theDataYouWant p') as $sentence) { echo "<h3>{$sentence}</h3>"; } 

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