Парсинг сайтов на PHP с Simple HTML DOM Parser: ищем по Google.Картинки. Часть 1: эмуляция браузера.

Сегодня рассмотрим на примере относительно простой задачи — автоматическое вытягивание картинок с выдачи системы Google по заранее определенному поисковому запросу. Без всякого рода рассуждений и «воды».

1. Скачиваем библиотеку под названием Simple HTML DOM Parser с http://sourceforge.net. Из всего множества файлов в распакованном архиве нам с вами будет интересен пока лишь 1: simple_html_dom.php.

2. Создаем свой сценарий на PHP. Подключаем парсер HTML:

<?php
// Подключаем парсер структуры DOM:
require_once('simple_html_dom.php');

3. И как бы банально это сейчас, не прозвучало, но прежде чем что-то спарсить нужно, чтобы для начала было что парсить. Потому нам с вами придется выполнить эмуляцию «человеческого» браузера. Сделать это можно средствами cURL.

Можете конечно пропустить этот этап, и преспокойно использовать просто функцию file_get_contents(), но это очень несерьезно.

Собственно сам «обезжиренный» поисковый запрос по картинкам в Google пока, на сегодняшний день, выглядит вот так (без всяких дополнительных параметров):

https://www.google.ru/search?q=modx+revolution&tbm=isch

GET-параметры следующие

  • q — поисковая фраза;
  • tbm равный isch — поиск по картинкам.
<?php
/**
 * Используя библиотеку cURL, набираем ключевую фразу $keyword 
 * в поиске по картинкам Google, затем возвращаем её содержимое.
 * 
 * @param string $keyword
 * @param string $referer
 * @return string
 */
function turn_to_google($keyword, $referer = 'http://google.ru/') {
    // Параметры GET-запроса:
    $params = array(
        'q' => $keyword,
        'tbm' => 'isch',
    );
    $params = http_build_query($params, '', '&');
    $url = "https://www.google.ru/search?$params";

    // Инициализируем cURL и посещаем веб-страницу:
    $YUghYu = curl_init();
    curl_setopt($YUghYu, CURLOPT_URL, $url);
    curl_setopt($YUghYu, CURLOPT_HEADER, 0);
    curl_setopt($YUghYu, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($YUghYu, CURLOPT_REFERER, $referer);
    curl_setopt($YUghYu, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($YUghYu, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($YUghYu, CURLOPT_CONNECTTIMEOUT, 20);
    curl_setopt($YUghYu, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 7.0" .
            "; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR" .
            " 3.0.04506.30)");
    $content = curl_exec($YUghYu);
    curl_close($YUghYu);
    unset($$YUghYu, $cookie);
    return $content;
}

echo turn_to_google('MODX Revolution');

Итак, пробный запуск:

cURL автоматический поисковый запрос к Google

Ну вроде бы работает, отлично.

В следующей части статьи попробуем собственно парсинг, — ведь теперь нам есть, что вытягивать.

Опубликовано 11-11-2013 в 10:49


Комментариев к записи: 3

  1. Roman:

    и где продолжение ????

  2. Здесь в принципе всё ясно. А как быть с поиском по картинке? Очень хотелось бы по картинке спарсить похожие

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>











Свежие комментарии

  • krasnov8953: к записи Не работает как мне кажется строчка $newTvId = $ »
  • Dimanski: к записи ничего не понимаю. Ставлю ModX на хостинг r01.ru »
  • Дмитрий: к записи Спасибо! Очень выручили. С битриксом беда, а прав »
  • леонид: к записи как сделать что были в ряд? у меня получается по о »
  • Администратор: к записи Статический IP. »
  • Steel: к записи Администратор, вы данную проблему решили подключен »
  • Дмитрий: к записи Хотел узнать как прикрутить данное окно (http://re »

Последние твиты