Парсинг сайтов на PHP с Simple HTML DOM Parser. Часть 2: собственно пример парсинга.

Как вы помните в прошлой статье мы с вами получили содержимое веб-страницы выдачи Google.Картинок по заданному поисковому запросу. Теперь будем с помощью библиотеки Simple HTML DOM Parser их вынимать, и сохранять себе на жесткий диск, программно.

1. Итак, к тому коду, что я создал ранее добавьте такие строчки, предварительно удалив вывод содержимого веб-страницы серпа:

$content = turn_to_google('MODX Revolution');
$content = str_get_html($content); // - создаем объект DOM из строки.
$images = $content->find('#ires td a img');
foreach ($images as $image) :
    echo $image->src . "<br />\n";
endforeach;

Итого, вы получите 20 ссылок с первой страницы на картинки-миниатюрки предварительного просмотра, сформированные Гуглом:

https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRIs3XX6k8zL127R2LI4QKM3Ea1Qjz6bqEoAGEwmoF70wWDqFnNTQXYnf0

https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSKFTdlZpzuH0-tql49FVgFScasyeVRTd4OF_Mac_9DO73nhQG4a9SWvkhk

https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSZcq_LTOZ-QmcIMizGb13EUCq1oGgGIsRgMtYX7detnTeFj2QJhfhwuao

https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcSjuG19BJYPkrGdT8nsCM7e9v0PjZXDOb_fj9Ox4uIOlh_GmyqrxphYmJ8

https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcR3qo1UfiigQqrMyJ67qAy63ikieqv-nDNxbPn4N34aoyx3UkESdT5vYvs

https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSPgW9WaA3cYKYS33sZo8_vKJWSeNt9Bj31rn0G52nQLQYFX5sl-liviwRe

https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTdnrRXkeV-2a-9ndHnJM3Me35Z9xTF8Jti-OJjm6iFpi_1Tb44kHa-Yxc

https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRu0eSmqr0su-YN4lCqoyRvL5I-kAKLaZDOJpNA8Pbz398Cy-Tc4QrjT1zx

Однако данный вариант не подходит, т.к. мне и вам нужны оригинальные изображения со сторонних сайтов, которые представлены в поисковой выдаче по заданному запросу, -  в данном случае это запрос «MODX Evolution».

P.S. Приятно, что 3 картинки в гугловской выдаче с моего сайта http://red-book-cms.ru.

2. Давайте немного изменим селекторы, чтобы можно было приблизиться к получению ссылок на оригинальные изображения.

Удобнее всего для поиска необходимых селекторов использовать браузер под названием Google Chrome.

Парсим картинки с выдачи Google

Как видите можно выбрать ссылки с заголовками «В полном размере», а можно попытаться вытащить полный путь до картинки из GET-параметра imgurl. Пожалуй я выберу второй вариант, потому что- он будет работать быстрее (нам с вами не нужно будет грузить всю веб-страницу с донорского сайта).

3. Модифицируем выбранный участок программного кода до следующего состояния, и получаем промежуточный результат в виде оригинальных путей до картинок:

$content = turn_to_google('MODX Revolution');
//echo $content; // для отладки
$content = str_get_html($content);
$images = $content->find('#ires td a');
foreach ($images as $url) :
    parse_str(parse_url($url->href, PHP_URL_QUERY), $image_content);
    echo $image_content['imgurl'] . "<br />\n";
endforeach;

Результат будет вот таким:

http://red-book-cms.ru/wp-content/uploads/2012/11/Panel-MODX-Revolution.png

http://www.znm.ru/wp-content/uploads/2009/05/modx-revolution-users.png

http://blog.medianotions.de/assets/images/artikel/2009/modx-revolution-beta-veroeffentlicht.fullsize.png

http://red-book-cms.ru/wp-content/uploads/2012/11/Nastroyki-dokumenta-v-MODX-Revolution.png

http://modx.ws/assets/templates/main/images/modx_for_dummies/urok3/configureMODx2.jpg

http://www.sooource.net/sites/default/files/2012/11/1/modx_revolution_generaciya_resursov.png

http://www.h-quadrat.com/techblog/wp-content/uploads/screenshot_01.jpg

http://www.cmswire.com/images/modx_edit_screen.jpg

http://red-book-cms.ru/wp-content/uploads/2012/11/Nastroyka-sistemyi-MODX-Revolution.png

http://red-book-cms.ru/wp-content/uploads/2012/11/SHablon-Page-MODX-Revolution.png

http://www.peterkroener.de/wp-content/uploads/2009/07/MODx-Revolution_1247814997018.png

http://smidth.ru/images/lesson2/img2.png

http://modx.s3.amazonaws.com/extras/664/modxss-ss.png

http://lux-d.ru/wp-content/uploads/2011/06/strict_url.jpg

http://codingpad.maryspad.com/wp-content/uploads/2009/06/trymodx.jpg

http://downloads.josefbrandl.com/posts/2010-03-03/gallerygear.png

http://farm4.static.flickr.com/3391/3540280237_42634385ed.jpg

http://www.h-quadrat.com/techblog/wp-content/uploads/screenshot_05.jpg

http://red-book-cms.ru/wp-content/uploads/2012/11/Glavnoe-menyu-MODX-Revolution.png

http://www.12k.su/wp-content/uploads/2013/06/mod-x-user2.jpg

Теперь остается только куда-нибудь сохранять полученные иллюстрации. В этом нам вновь поможет cURL, — читайте следующую статью.

Опубликовано 11-11-2013 в 13:01


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

  1. Есть сайт на Joomla http://sebenado.ru/
    Нужна только форма заказа из икеа
    Как сделать вот так?
    http://idea-sr.ru/checkout/
    или вот так?
    http://shopikea.ru/checkout.html

  2. Радик:

    Помогите, не получается спарсить.

    Вот тут #ires td a не хранится полный путь до картинки. Он нигде не хранится теперь?
    ДОМ пролазил, не нашел.

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

Ваш 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 »

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