Если верить Википедии,
то парсинг — это синтактический анализ
текста. Если применить это определение
к web-технологиям, то получается довольно
таки полезная штука. Просто напросто
мы можем «содрать» нужную нам инфу с
нужных сайтов сильно не напрягаясь. И
делать это настолько часто, насколько
захотим, полностью переложив данную
задачу на PHP. Приведу несколько примеров.
Нам необходимо
заливать на сайт тематические картинки,
относящиеся к любому слову. Тут в помощь
нам приходят 2 вещи — это гугл и собственно
парсер. Посылаем запрос на
http://images.google.ru и
запускаем парсер, который сам все за
вас сделает.
Допустим, что сайт
у нас есть, а вот контента — кот наплакал.
Самому забивать нет ни времени ни, может
быть фантазии, тогда опять же обращаемся
к парсеру. Ищем сайт со статьями нужной
нам тематики и нагло сдираем статьи
оттуда.
Я уже и не говорю о
возможности заполнения своих
интернет-магазинов товарами. Хорошо
это или плохо скорее вопрос морали,
поэтому эту часть повествования я упущу,
а приступлю пожалуй к главному.
В парсинге нам очень
поможет класс 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 — значение
элемента.
Ну и далее подобным
макаром. Если будут вопросы, то милости
просим, пишити в комментах, постараюсь
ответить как можно быстрее )
|