| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: X технологии > Парсинг удалённого HTML файла |
| Автор: taral 10.11.2008, 19:25 | ||||
У меня возникла потребность в парсинге определённой страници с интернета. До у меня не возникало нужды работать с DOM.
Этот пример работает. Если я пробую другой сайт. Например google выдает вот что.
Ошибку выдает в строке $doc->loadHTML($html); Я так понимаю что PHP не может разобрать DOM структуру того HTML. Каким образом происходит работа с не валидными документами? Допустим мне нужно вытянуть текст div у которого id="aaa". Использовать регулярные выражения? Или есть лучше способ? |
| Автор: destrd 10.11.2008, 21:25 |
| Ну да, где regexp'ы, где explod'ы и работа со строками. Больше я думаю ничего тут не придумать. |
| Автор: taral 10.11.2008, 21:57 |
| Ясно спасибо. Просто я до этого только в JavaScript с DOM работал. Ну и привык что все просто выходит) Буду дерзать. |
| Автор: skyboy 11.11.2008, 00:38 |
хм. а дерево-то строится? между прочим, это не ошибка, а предупреждения. после выдачи предупреждения скрипт вполне себе продолжает работу, просто честно предупреждает - "со мной чей-то не то, могу глючить". а http://ua2.php.net/manual/en/domdocument.loadhtml.phpи заявлен как метод для загрузки "not well-formed XML" Добавлено через 1 минуту и 34 секунды а ругается, скорее всего, на & который не превращен в & - потому как пытается распарсить в "?param1=value1¶m2=" некую xml-entity ¶m2 и ругается на несуществование подобного. |
| Автор: getme 16.11.2008, 22:43 |
| дерево построится, Я к примеру просто подавляю @$doc->loadHTML($html); предупреждение ничего критического в этом невижу. |
| Автор: bars80080 17.11.2008, 00:18 |
| а вот это фигово, что в случае, который ты можешь пофиксить, ты игнорируешь, а не исправляешь |