Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Парсинг HTML на PHP

6.1K
05 июля 2007 года
Flex25
50 / / 14.03.2006
Мне нужно сделать парсинг произвольного html-документа, т.е. разложить этот документ на дерево узлов в памяти компьютера.

Многие советуют для этого использовать DOM, но т.к. подавляющее большинство html-документов в Интернет составлено с ошибками (не закрытые теги и т.д.), DOM-модель работает не корректно.

Например, вот код, который я нашел в Интернет. Ин должен выводить все теги A (ссылки) из html-документа (в примере это первая страница Яндекса).

Код:
$team_xml = new DOMDocument();
$team_xml->encoding='windows-1251';
$team_xml->loadHTMLFile('http://ya.ru');


$tag_list = $team_xml->getElementsByTagName('a');
foreach ($tag_list AS $tag) {
    foreach ($tag->childNodes AS $item) {
        print $item->nodeName." = " . $item->nodeValue . "<BR>";
    }
}


Но результат абсолютно не верный. Что делать???

P.S. Вот в Perl есть такой модуль HTML::TreeBuilder - он любые html-файлы парсит, а в PHP такого модуля нет :(
13
05 июля 2007 года
RussianSpy
3.0K / / 04.07.2006
еще есть Tidy
16K
05 июля 2007 года
Бян
43 / / 05.09.2006
http://pear.php.net/package/XML_HTMLSax3
и конечно же tidyHtml
6.1K
05 июля 2007 года
Flex25
50 / / 14.03.2006
Цитата: RussianSpy
еще есть Tidy


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

Как мне, например, вывести список параметра href у все тегов A на конкретной странице?

15
06 июля 2007 года
shaelf
2.7K / / 04.05.2005
Если словосочетание регулярное выражение знакомо, то проблем не возникнет, если нет, то учить и потом проблем не возникнет)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог