Таки да, я созрел для запиливания нового обновления к своему парсеру. К сожалению предыдущая версия для пользователей оказалась не такой дружелюбной, как я бы того хотел. И потому я долго-долго думал над реализацией и в итоге таки написал ее. Представляю вам альтернативный режим работы парсера, а именно — парсинг по 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
указываем его как селектор контента
и тестируем
Как вы видите результаты совпадают. Короче говоря есть масса путей, выбирайте свой и делайте.
Теги скриптов удаляются, мусор по возможности удаляется, в будущем чистка от мусора будет дляменя приортитетна, а пока используйте замену. Например те кто внимательно смотрел тест заметили первый блок содержащий