Експерт Semalt роз'яснює, як викреслити веб-сайт AJAX за допомогою Python

Веб-скребтування - це метод, який використовує програмне забезпечення для отримання даних із веб-сторінки. Є безліч інструментів, які можна використовувати для скребкування Інтернету пітоном, деякі з них є; Небо, Скрапія, запити та прекрасний суп. Однак більшість цих інструментів обмежені тим, що вони отримують лише статичний HTML, що надходить із сервера, а не динамічну частину, надану JavaScript.

Однак є кілька прийомів, за допомогою яких цю проблему можна подолати:

1. Автоматизовані браузери

Ви можете скористатися автоматизованими браузерами, такими як Selenium або Splash, які є повноцінними браузерами, які працюють без голови. Однак їх налаштування може бути досить складним, тому ми зупинимось на другому варіанті нижче.

2. Перехоплення дзвінків AJAX

Це передбачає спробу перехоплення дзвінків AJAX зі сторінки та спробу їх відтворення чи відтворення.

У цій статті ми зупинимося на тому, як ловити дзвінки AJAX та відтворювати їх за допомогою бібліотеки запитів та браузера Google Chrome. Хоча такі рамки, як Scrap, можуть запропонувати вам більш ефективне рішення, коли справа доходить до вискоблювання, вона потрібна не для всіх випадків. Виклики AJAX здебільшого виконуються проти API, який повертає об'єкт JSON, з яким бібліотека запитів може легко працювати.

Перше, що вам потрібно знати, це те, що намагатися відтворити виклик AJAX - це як використовувати незадокументований API. Тому ви повинні переглянути всі дзвінки, які здійснюють сторінки. Ви можете зайти на сайт, пограти з ним деякий час і подивитися, як відображається якась інформація. Після того, як ви закінчите грати, поверніться і починайте вичісувати.

Перш ніж розібратися в деталях, давайте спочатку розберемося, як працює сторінка. Якщо ви відвідаєте сторінку магазинів за станом, виберіть будь-який стан, і ця сторінка відображатиме інформацію про магазин. Кожен раз, коли ви вибираєте штат, веб-сайт надає нові магазини для заміни старих. Це досягається за допомогою та AJAX дзвінка на сервер із запитом інформації. Наш намір зараз - зловити цей виклик і повторити його.

Для цього все, що вам потрібно зробити, - це відкрити браузер Chrome консолідований DevTools та перейти до підрозділу XHR. XHR - це інтерфейс, який виконує HTTP та HTTPS запити. Таким чином, тут будуть показані запити AJAX. Якщо двічі клацнути виклик AJAX, ви знайдете багато інформації в магазинах. Ви також можете переглянути попередні запити.

Ви зауважите, що на сервер надсилається багато даних. Однак не хвилюйтеся, оскільки не все це потрібно. Щоб побачити, які потрібні вам дані, ви можете відкрити консоль і виконувати різні поштові запити на веб-сайт. Тепер, коли ви знаєте, як працює сторінка і розшифрували дзвінок AJAX, ви можете написати свій скребок.

Ви можете запитати: "чому б не використовувати автоматизований браузер?" Рішення просте; завжди намагайтеся відтворювати дзвінки AJAX, перш ніж приступати до чогось більш важкого і складного, наприклад автоматизованого браузера. Це простіше і легше.

png

mass gmail