Я люблю вордпресс. И я люблю людей, использующих WordPress, когда они не защищают и не ограничивают скорость API-интерфейсов WP, которые позволяют мне сканировать и загружать масло новой эры — данные! Я продолжил поиск данных из моего прошлого столкновения с технологическим кризисом, и на этот раз я решил пойти на местный уровень. Я говорю на маратхи — это мой родной язык. Я решил загрузить новостной контент на маратхи и обратился к loksatta.com, чтобы узнать, могу ли я найти какой-либо источник для этого.

Вордпресс снова!

Что ж, меня не удивило, что loksatta.com одна из ведущих газет на маратхи использует WordPress для обеспечения своего присутствия в Интернете. Я попытался подключиться к API-интерфейсам WP JSON, и, похоже, loksatta удалось настроить маршруты, чтобы ограничить конечные точки API. Но, эй, это не означает, что существует ограничение на использование и ограничение скорости!

После анализа доступных маршрутов на https://www.loksatta.com/wp-json/wp/v2/ и просмотра их меню и некоторых сообщений я выяснил аргументы для их REST API и загрузил несколько примеров с помощью curl.

NodeJS + Axios + jsonfile

На этот раз я решил использовать node. Я использовал модули jsonfile и axios, чтобы завершить интересную часть — кодирование! Вы можете найти код для справки в конце этой статьи.

С помощью простого JS-кода и Node мне удалось скачать тысячи статей. Учитывая расстояние, пропускную способность, скорость, ограничения памяти — я все еще мог загружать 2–2,5 тысячи статей в минуту — все JSON с содержимым юникода.

МАСЛО

Чтобы дать представление об объеме данных, вот что я мог легко скачать:

  1. Более 25 000 новостных статей для Мумбаи, Пуны и Тане в каждой
  2. Почти весь доступный контент с loksatta.com в различных разделах литературы, таких как журналы lokrang, chaturang и lokprabha.

Вывод

Если вы владеете или разрабатываете сайты на базе WordPress, которые были обновлены до версии 4.7.x или выше; затем оцените, хотите ли вы оставить конечные точки REST открытыми и доступными. Я рекомендую защищать их на основе доступа и разрешений пользователей и применять ограничение скорости / IP-фильтрацию.

Код

https://codepen.io/josh9383/pen/qJeode.js