Парсер по селекторам.

Таки да, я созрел для запиливания нового обновления к своему парсеру. К сожалению предыдущая версия для пользователей оказалась не такой дружелюбной, как я бы того хотел. И потому я долго-долго думал над реализацией и в итоге таки написал ее. Представляю вам альтернативный режим работы парсера, а именно — парсинг по jquery селекторам.

Сегодня я постараюсь осветить этот режим более подробно, дабы читатель смог вникнуть во все аспекты работы с плагином.

Описание обновления

Для начала посмотрим на измененный парсер ссылок. Теперь в нем имеется два режима, старый и новый:


Старый режим это парсинг по границам, он никуда не делся, просто переключите флажок и он появится перед вами.

Так-же, как вы видите, имеется возможность выбрать случайную категорию из списка, таким образом можно перемешивать новости в категориях.

Что же касательно самого режима, то вот он:


Первые два селектора отвечают, за заголовок будущего материала и его содержимое. Не беспокойтесь, все картинки которые находятся в содержимом материала, по возможности, разуемеется, будут скачаны к вам на сервер и добавлены в media библиотеку.

Дальше идет фильтрация содержимого от ненужных блоков:


Как вы видите фильтровать блоки можно по регулярным выражениям или по селекторам, это опять-же, зависит от того что вам удобнее и подходит под ситуацию.

Ко всему прочему имеется и встроенный yandex переводчик:


В качестве приятного дополнения был добавлен так-же загрузчик файлов со страниц. Работает он только! для ссылок с атрибутом href, так что будьте внимательны:


Ну и в качестве своеобразного заключения давайте спарсим какой-нибудь сайт с использованием нового режима и демонстрацией всех возможностей.

Установка обновления

К сожалению при внесении правок понадобилось изменить базу данных парсера, так что теперь, если вы использовали старую версию парсера, вам понадобится выполнить несколько шагов для его активации. Во первых скачайте с этой страницы последнюю версию плагина. Сохраните ту версию плагина, которая у вас работает в данный момент, после чего распакуйте с заменой файлов новую версию плагина.

Теперь перейдите в админку WordPress -> Плагины и там сначала деактивируйте, а потом активируйте aftparser:


Демонстрация работы

Давайте в качестве демонстрации спарсим абсолютно любой сайт женской тематики. И так… что мне приходит на ум в данном случае… пусть это будет… да тематика не такая уж простая для мужчины, однако крайне выгодная с точки зрения размещения рекламы и прочих ништяков по причине плохой технической подкованности прекрасной половины человечества.

И так берем мы вот этот сайт из топа — womenparadise

Разумеется я выкладываю вам тут только демонстрацию работы, сам я использовать материалы с этого сайта нигде не собираюсь просто потому что мне и так некогда. Короче воровать контент или нет решать сугубо вам, я бы советовал вам переводить его на украинский тогда это уже будет не такой наглой кражей, скажем так. И парсить сайты не из топа, которые там и так крайне прочно сидят, а с днища ебаного. Я вот щас из топа беру, так что толку от моих действий никакого не будет даже если я выложу такое в интернет.

Начнем со сбора ссылок, мне много не надо штук 100 хватит за глаза для демонстрации.


Тыкаем старт и останавливаем в нужный момент.


Ну вот вы видите, что ссылок у меня собралось 203, но я ждал секунд 20 от силы, теперь надо всю эту хрень отфильтровать. Для этого просто берем и открываем простой фильтр. Ссылки на полноценные посты у нас всегда оканчиваются на .html так что мы возьмем и отфильтруем только те строки где есть .html


Отлично, теперь можно переходить к настройке границ. Если вы до этого хотя-бы мельком, немного, работали с jquery вам будет все очевидно и крайне просто, но если это не так… сейчас все разъясню.

Открываем любой пост и ищем его заголовок, в данно случае это будет название нового материала и у нас тоже!


Тут у нас просто h1 поэтому селектором заголовка будет h1.

Указываем:


Теперь так-же делаем с содержимым материала.


В данном случае мы имеем блок td и class=»news», что в виде селектора будет td.news


Теперь тестируем:


Однако можно пойти по другому пути и, например, подсчитать блоки tr до блока с постом после чего выбрать тем блок td (это для продвинутых). Давайте сделаем и так тоже, на всякий случай.

Как мы видим dom структура документа состоит из таблицы.


Где верхний блок имеет id=»dle-content». Будем от него «плясать». В итоге получается:

#dle-content table tbody tr

Блоков tr у нас много,  поэтому подсчитаем каким по счету идет блок контента.

Итого: шестым. Внутри блока tr еще есть один блок td в котором и находится наш материал. Итоговое выражение выйдет таким:

#dle-content table tbody tr[6] td

указываем его как селектор контента


и тестируем


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

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

Нужен парсинг данных?

Собираем открытые данные с любых веб-сайтов: цены, названия, артикулы, описания, свойства, категории, фото, отзывы, ссылки, тел.номера, e-mail и многое другое.

Написать
img