Пятница, 19.04.2024, 12:45
Приветствую Вас Гость | RSS
Главная | БЛОГ | Регистрация | Вход
Меню сайта
Форма входа
Категории раздела
WEB-Дизайн [2]
HTML, CSS, JAVA-Script
PHP [2]
Описание языка, скрипты, работа с MySQL
Технология .NET [6]
C#, ASP, основные принципы
Операционные системы [1]
Linux [1]
Все о Linux.
Бытиё [1]
Моя жизнь, мысли, переживания и размышления...
Поиск
Календарь
«  Ноябрь 2009  »
ПнВтСрЧтПтСбВс
      1
2345678
9101112131415
16171819202122
23242526272829
30
Архив записей
Наш опрос
На каком языке вы предпочитаете программировать?
Всего ответов: 791
Друзья сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Блог йуного кодера
Главная » 2009 » Ноябрь » 8 » Парсинг HTML страниц посредством Simple Html DOM
01:44
Парсинг HTML страниц посредством Simple Html DOM

Если верить Википедии, то парсинг — это синтактический анализ текста. Если применить это определение к web-технологиям, то получается довольно таки полезная штука. Просто напросто мы можем «содрать» нужную нам инфу с нужных сайтов сильно не напрягаясь. И делать это настолько часто, насколько захотим, полностью переложив данную задачу на PHP. Приведу несколько примеров.

  1. Нам необходимо заливать на сайт тематические картинки, относящиеся к любому слову. Тут в помощь нам приходят 2 вещи — это гугл и собственно парсер. Посылаем запрос на http://images.google.ru и запускаем парсер, который сам все за вас сделает.

  2. Допустим, что сайт у нас есть, а вот контента — кот наплакал. Самому забивать нет ни времени ни, может быть фантазии, тогда опять же обращаемся к парсеру. Ищем сайт со статьями нужной нам тематики и нагло сдираем статьи оттуда.

Я уже и не говорю о возможности заполнения своих интернет-магазинов товарами. Хорошо это или плохо скорее вопрос морали, поэтому эту часть повествования я упущу, а приступлю пожалуй к главному.

В парсинге нам очень поможет класс simple_html_dom.php, который можно скачать вот по этой ссылке. Разбирать по косточкам в этой статье я его не буду, а просто покажу как с ним легко и удобно работать.

Попробуем парсить поисковик google. Итак задача получить top10 ссылок с гугла по запросу... не будем мудрить... «Парсинг». Первый этап. Гуглим что угодно и внимательно смотрим на построение исходного кода полученной страницы. И видим следующее построение:

<ol><li><h3 class='r'><a href=''>Заголовок запроса</a><h3></li></ol>

Это есстественно примерная схема, но то, что нам именно нужно я указал — это заголовок H3 с классом 'r'. Вот с этими элементами мы и будем работать.

Теперь определяемся с URL, который будем парсить. В гугле схема проста: http://www.google.ru/search?q=[слово].

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

 require "include/simple_html_dom.php";
 // Создаем DOM таблицу из URL
 $html = file_get_html('http://www.google.ru/search?q=Парсер');
 
 // Находим нужные нам ссылки по всему полученному документу. И собссна выводим их.
 foreach($html->find('h3.r') as $element)
 echo $element->innertext.'<br>';

Не забываем подключать класс парсера. Теперь перейдем к самой интересной строчке: find('h3.r'). Здесь мы указываем, что ищем все заголовки H3 с классом r. Если кто знаком с jQuery, то здесь поиск элементов производится точно так же. Если нет, то вам сюда: http://simplehtmldom.sourceforge.net/


$element->innertext — выводит все то, что находится внутри тега. Теперь небольшой экскурс:

  • $element->href — значение ссылки
  • $element->src — чаще всего местоположение картинки
  • $element-value — значение элемента.

Ну и далее подобным макаром. Если будут вопросы, то милости просим, пишити в комментах, постараюсь ответить как можно быстрее )


Категория: PHP | Просмотров: 4325 | Добавил: dblog | Теги: PHP, парсинг, парсер, simple_html_dom | Рейтинг: 0.0/0
Всего комментариев: 3
1 Александр  
0
Что означает "Не забываем подключать класс парсера."
какого парсера?

2 dblog  
0
require "include/simple_html_dom.php";

Некоторые забывают )


3 Алексей  
0
Выложите пожалуйста целиком в файлах наверняка есть

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Бесплатный хостинг uCozCopyright MyCorp © 2024