Парсинг HTML

1-ый способ: BrowserKit (рекомендуемый)

Парсить сайт можно через компонент BrowserKit.

Сначала компонент надо установить через Composer.

composer require symfony/browser-kit

Теперь можно использовать библиотеку для парсинга:

use Symfony\Component\BrowserKit\HttpBrowser;

$client = new HttpBrowser();
$crawler = $client->request('GET', 'https://site-name.ru/page/');

$crawler->filter('h1')->html(); // Данные в виде HTML
$crawler->filter('h1')->text(); // Данные в виде строки

2-ой способ: phpQuery (устаревший)

Раньше данная библиотека активно использовалась для парсинга сайтов. Она приведена для примера.

Спарсить HTML можно через библиотеку phpQuery.

Ссылка на библиотеку: code.google.com/archive/p/phpquery/

Элементы выбираются на основе синтаксиса библиотеки jQuery.

include 'phpQuery/phpQuery.php';

$content = file_get_contents('https://ru.wikipedia.org/wiki/PHP');
phpQuery::newDocument($content);

// выборка <title>
pq('title')->text(); // PHP — Википедия

// выборка <meta name="generator">
pq('meta[name="generator"]')->attr('content'); // MediaWiki 1.31.0-wmf.15

// выборка элемента по атрибуту "id"
pq('#firstHeading')->text(); // PHP

// выборка ссылки на картинку PHP
pq('.wikidata-claim img')->attr('src'); // upload.wikimedia.org/...149px-PHP-logo.svg.png

// выборка и вывод нескольких элементов
foreach (pq('#p-lang li') as $lang) {
    echo pq($lang)->text();
}

Похожие страницы