Как-то раз задумался над тем, как получить список всех сайтов сервиса LiveJournal.
Поиск в интернете ничего не дал, единого списка/реестра я не нашел. Тогда мне стало интересно — можно ли собрать список LiveJournal-овских сайтов анализируя сами сайты изнутри (точнее кто у кого в друзьях)?
Написал программу (чисто ради интереса), для того что бы было с чего начинать работать — добавил в программу первоначальный небольшой список LJ-cайтов и возможность парсинга произвольного поста на предмет комментариев от других LJ-сайтов.
После этого, имея стартовую базу в несколько тысяч уникальных адресов, дописал функционал ,что бы идти по списку и анализировать профиль, тут же добавляя новые адреса в список. Проход по списку пришлось делать с задержкой, т.к. выяснилось, что если дергать LJ чаще, чем раз в две секунды — то за это банят на срок не меньше суток. Хотя и это не проблема, прокси ведь никто не отменял. Дописал функционал по параллельной обработке (с регулируемым количеством потоков) через список прокси.
В общем, не спеша обработав меньшую часть списка удалось при помощи самописного парсера удалось получить 2 миллиона LJ-сайтов:
Предыстория написания парсера такова.
На одном украинском сайте объявлений (сайт с трехбуквенным именем, кстати, довольно мощный, является аналогом российского сайта Slando.ru) я как-то размещал объявление о продаже ненужной всячины. Указал номер телефона, по которому можно со мной связаться. Указал и указал, ничего особенного. Через несколько дней вечером получаю SMS-сообщение приблизительно в таком тоне: «Здравствуйте, %моё имя%! Мы супер-пупер компания, занимающая веб-дезигном, заказывайте сайты у нас. Наши поезда самые поездатые поезда в мире! тел. XXX-XXXXXХХ«.
Телефон мой, имя моё. Странно. Откуда?
Позвонил по номеру. Спрашиваю вежливым, но недобрым голосом:
- «Это та самая-супер-пупер компания?»
— «Ну да, это мы» — отвечает человек невеселым голосом
- «Мне тут SMS от вас пришло. Что это за спам рассылка?»
— «Ну …это не спам рассылка, это у нас информирование такое»
Был написан парсер сайта дверей на движке lookmy.info (сайт продает двери и связанную с ними фурнитуру). Структура категорий одно- и двухуровневая к которым относятся почти 2500 товаров.
С чем пришлось повозиться при парсинге:
- в исходном описании товаров встречались следы «левой» верстки, пришлось написать несколько правил замены
- в исходном описании товаров местами заглавные буквы новых предложений были в виде html-кодов для кириллицы. При просмотре контента через браузер — все отображается нормально, а в верстке вместо заглавной русской буквы «В» стоит вот такая кракозябра: В Похоже, тут без «SEO-шников» не обошлось. В результате пришлось создать в программе правила замены на нормальные символы.
В итоге получено:
Категорий — 56 штук (есть родительские и дочерние).
Информация по категориям:
поле |
пример |
уникальный идентификатор категории |
12 |
название родительской категории |
Экошпон |
URL-родительской категории |
|
название дочерней категории |
Эль Порта |
URL-дочерней категории |
http://[censored]/Ekoshpon/El-Porta/ |
URL-картинки категорий |
http://[censored]/…/gallery.gif |
скачана картинки |
да/нет |
кол-во товаров в категории |
5 |
новое имя картинки категории |
categ12gallery.gif |
Товаров — 2473 штук.
Был написан еще один парсер для сайта на движке OpenCart. В этот раз для сайта KROSSBERG.RU
Сайт занимается торговлей через интернет китайскими подделками обуви известных производителей (Nike, Adidas, Timberlake) по низким ценам. Скидка -58%, налетай подешевело, осталась последняя пара обуви
40 очков! 40 очков! (с) м/ф «Алеша Попович и Тугарин Змей»
В отличии от предыдущего парсинга, доступ к товарам был возможен без всяких регистраций, правда несколько страниц товаров не открылись принципиально. Либо ссылка на страницу оказалась недействительной, либо страницу товара удалили. Категории на сайте идут без вложенностей, товаров на странице категории не много.
Так же как и в предыдущем парсинге, получена база товаров в виде двух таблиц — категории и товары.
Структура таблицы «Категории» (всего 32 записей):
Name_cat1 — (не используется)
Url_cat1 — (не используется)
Name_cat2 — (не используется)
Url_cat2 — (не используется)
Name_cat3 — Название категории (группа товаров).
Url_cat3 — WEB-адрес (ссылка) категории (группа товаров).
ID_cat3 — Уникальный идентификатор подчиненной категории (группа товаров).
Структура таблицы «Товары» (всего 273 записи):
В образовательных целях, для прокачивания программерских навыков решил попробовать парсинг сайта интернет-магазина. Было интересно написать парсер интернет-магазина на каком-нибудь популярном движке.
Написать парсер сайта на OpenCart решил по причине его бесплатности и высокой популярности среди владельцев интернет-магазинов. Донором повезло стать сайту интернет-магазина BRIOTTI.RU
Неспешно, в два захода, был написан парсер интернет-магазина на движке OpenCart.
Результат работы самописного парсера — стала база категорий и товаров (две таблицы) + выкачанные картинки:
Структура таблицы «Категории» (всего 11 записей):
Name_cat1 — Название главной родительской категории.
Url_cat1 — WEB-адрес (ссылка) главной родительской категории.
Name_cat2 — Название подчиненной категории (сезон года).
Url_cat2 — WEB-адрес (ссылка) подчиненной категории (сезон года).
Name_cat3 — Название подчиненной категории (группа товаров).
Url_cat3 — WEB-адрес (ссылка) подчиненной категории (группа товаров).
ID_cat3 — Уникальный идентификатор подчиненной категории (группа товаров).
Структура таблицы «Товары» (всего 274 записи):
ID_cat3 — Идентификатор подчиненной категории (группа товаров).
ID_tovar — Уникальный идентификатор товара.
Tovar — Название товара.
URL — WEB-адрес (ссылка) страницы товара.
Model — Артикул (модель) товара.
Cena — Цена товара.
Varianti — Варианты исполнения товара.
Opisanie — Описание товара (html-таблица) с дополнительной информацией (материал верха, внутренний материал, материал стельки, подошвы и т.д.).
Img_url — WEB-адрес (ссылка) на меньшую картинку товара (размером 200 на 200 пикселей, видна у товара при просмотре товаров внутри категорий).
Download_img — признак скачана или нет картинка (по ссылке из Img_url).
Img_url_medium — WEB-адрес (ссылка) на среднюю картинку товара (размером 228 на 228 пикселей, находится на странице самого товара).
Download_img_medium — признак скачана или нет картинка (по ссылке из Img_url_medium).
Img_url_big — WEB-адрес (ссылка) на большую картинку товара (размером 500 на 500 пикселей, находится на странице самого товара, открывается при клике по меньшей).
Download_img_big — признак скачана или нет картинка (по ссылке из Img_url_big).
Вот как выглядит база в парсере:
Был написан парсер интернет магазина-аптеки fitoapteka.com
Результат работы парсера — содержимое интернет сайта (вместе с картинками) в виде базы со следующими полями:
№ п/п — номер по порядку (всего 2640 уникальных товаров)
Kod - внутренний код товара на сайте fitoapteka.com
NameProduct — наименование продукта
Manufacturer — производитель (в формате «Страна» либо «Фирма (Страна)»)
Price — цена (в грн)
Url — ссылка к странице товара
Category* — категории к которым относится товар (разделены спецсимволом, к примеру: «Препараты ВНУТРЬ#Травы, грибы, сборы, фиточаи#Травы#Здоровое питание#»)
H1 — содержимое тэга <H1>страницы товара
Packing — форма выпуска товара (к примеру: «флакон 25 мл» или «30 капсул»)
Description — текстовое описание товара со страницы товара
SmallImageUrl** — ссылка к маленькой картинке со страницы товара (вместе с именем файла)
BigImageUrl**- ссылка к большой картинке (вместе с именем файла), которая открывается по клику на маленькой картинке
Под свои цели, по-быстрому, был написан парсер сайта Statonline.ru для получения списка доменов зоны .RU
Результат работы парсера — текстовый файл (74Мб) содержащий в себе список доменов зоны .RU
Поскольку, делалось под свои цели — в файле просто список доменов (без даты регистрации, даты до которой оплачен домен и регистратора)
Количество доменов — 5.058.102 записей по данным на 06-07.01.2016
Желающие приобрести список доменов зоны .RU — стучитесь в комментарии, договоримся. Есть вариант выкачки зон .РФ и .SU как просто списком доменов, так и с сопуствующей информацией (дата регистрации, дата до которой оплачен домен, название регистратора).
Примечание: принимаются заказы на парсинг сайтов (интернет магазины, аптеки).