Возможный дубликат:
HTML-соскабливание в Php
Я хотел бы знать, есть ли способ получить с веб-страницы определенную строку текста, которая обновляется каждый раз, а затем с использованием PHP. Я искал «по всему Интернету» и ничего не нашел. Просто увидел, что preg_match может это сделать, но я не понял, как его использовать.
предположите, что веб-страница содержит следующее:
<div name="changeable_text">**GET THIS TEXT**</div>
Как я могу это сделать с помощью PHP, после использования file_get_contents
для размещения страницы в переменной?
Заранее спасибо 🙂
Вы можете использовать DOMDocument
, например:
$html = file_get_contents( $url); libxml_use_internal_errors( true); $doc = new DOMDocument; $doc->loadHTML( $html); $xpath = new DOMXpath( $doc); // A name attribute on a <div>??? $node = $xpath->query( '//div[@name="changeable_text"]')->item( 0); echo $node->textContent; // This will print **GET THIS TEXT**
Возможно, вам стоит взглянуть на
Простая библиотека HTML DOM
Здесь есть небольшой учебник: http://www.developertutorials.com/tutorials/php/easy-screen-scraping-in-php-simple-html-dom-library-simplehtmldom-398/
Это один из API скрипинга экрана, который позволяет вам загружать html, а затем получать части его на похожий язык jQuery.
Вы говорите об очистке данных : акте извлечения данных из читаемого человеком результата. В вашем случае это все, что находится между тегами <div>
. Используйте расширение PHP DOM , чтобы получить тег, который вы хотите, и извлечь данные. Google ищет учебник по PHP DOM.
$delements= file_get_html('url will go here'); foreach($elements->find('element') as $ele) { //traverse according to your preferences } //return or output