Не будемо далеко ходити за прикладом і напишемо парсер контенту з «Хакера». Як ти знаєш, сайт нашого журналу зараз не надає ніякого API для програмного отримання статей, крім RSS. Однак RSS не завжди зручний, та й видає далеко не всю потрібну інформацію. Виправимо це!
Постановка задачі
Відповідь має бути таким:
Фреймворк для вебу
WrapAPI - це досить новий (пара місяців від роду) сервіс для побудови потужних кастомних парсеров інтернету і надання до них доступу по API. Не лякайся, якщо нічого не зрозумів, зараз поясню на пальцях. Працює так:
Трохи про приватності запитів
Ти напевно вже задумався про те, наскільки безпечно використовувати чужий сервіс і передавати йому параметри своїх запитів з приватними даними. Тим більше що за замовчуванням для кожного нового API-проекту буде створюватися публічний репозиторій і запускати API з нього зможе будь-хто. Не все так погано:
приготування
Кілька простих кроків перед початком.
- Йдемо на сайт WrapAPI. створюємо нову учетку і логіном в неї.
- Встановлюємо розширення для Chrome (підійде будь-який Chromium-based браузер), відкриваємо консоль розробника і бачимо нову вкладку WrapAPI.
- Переходимо на неї і логіном.
Це розширення нам знадобиться для того, щоб перехоплювати запити, які ми збираємося емулювати, і швидко направляти їх в WrapAPI для подальшої роботи. За логікою роботи це розширення дуже схоже на в'язку Burp Proxy + Burp Intruder.
відловлюємо запити
Тепер потрібно вказати WrapAPI, який HTTP-запит ми будемо використовувати для побудови нашого API. Йдемо на сайт «Хакера» і відкриваємо консоль розробника, переключившись на вкладку WrapAPI.
Запити, які генерітся після натискання на посилання пагінатора, будемо використовувати як зразок Запит спійманий, зберігаємо його на сервер WrapAPI
Конфігуріруем WrapAPI
Огляд нашого майбутнього APIПереходь на вкладку Inputs and request. Тут нам знадобиться вказати, з якими параметрами WrapAPI повинен парсити запитувану сторінку, щоб сервер віддав йому валідний відповідь.
Конфігуріруем вхідні параметри запитуЗаголовки запиту нижче можна не чіпати, я використовував стандартні з Chromium. Якщо Парс не "Хакер», а дані з якого-небудь закритого сервера, можеш підставити туди потрібні куки, хедери, basic-auth і все, що потрібно. Одним словом, ти зможеш налаштувати свій запит так, щоб сервер без жодних підозр віддав тобі контент.
Виставляємо необхідні POST-параметри в форматі form / urlencoded, щоб наш запит відпрацював правильноВчимо WrapAPI відсутньою фічам
Тепер потрібно вказати WrapAPI, як обробляти отриманий результат і в якому вигляді його представляти. Переходь на наступну вкладку - Outputs and response.