Обхід капчі при парсінгу на php, трепачёв дмитрий
парсинг сайтів
В даному уроці ми з вами навчимося обходити капчу. Капча - це така картинка, дані з якої слід ввести в інпут, щоб відправити форму.
Капчу встановлюють на форму, якщо хочуть обійти її автоматичне заповнення парсером. Однак, практично будь-яку капчу можна обійти. Цим ми зараз і займемося.
Як влаштована капча
Щоб обійти капчу, потрібно розуміти, як вона влаштована зсередини.
Коли ми заходимо на сторінку з формою - там вже є капча або вона подгружается через деякий час.
Звідки береться ця капча? Вона генерується скриптом PHP при обігу на заданий URL, нехай для прикладу цей URL такий - capcha.php. Тоді в HTML коді форми для картинки капчи буде такий код:
.Якщо ми зайдемо на сторінку з формою, то картинка капчі автоматично підтягнеться зі сторінки capcha.php.
При цьому сторінка capcha.php - це скрипт, який генерує випадкову рядок, робить з неї картинку капчи і віддає її в браузер.
Крім того сторінка capcha.php зберігає рядок з капчі в сесію. Це потрібно для того, щоб перевірити правильність введення капчі по відправці форми.
Якщо звернутися на сторінку capcha.php - вона кожен раз буде віддавати нову капчу і, відповідно, ця нова капча буде затирати стару в сесії.
Як обійти капчу
Отже, тепер ви знаєте як влаштована капча. Давайте тепер про те, як її обійти. Для цього потрібно зробити кілька запитів за допомогою CURL.
Перший запит повинен слатися на файл з капчі. Куди його слати - видно в HTML коді форми або ж можна відстежити в отладчике, куди відправляються запити.
Результатом даної операції буде картинка, її можна зберегти в файл за допомогою file_put_contents. Навіщо зберігати - щоб можна було прочитати капчу і розібрати її будь-яким чином (для початку вручну).
Запит на капчу обов'язково слід надсилати через curl, а не file_get_contents, так як нам обов'язково слід приймати і відправляти куки - адже капча працює на сесіях PHP.
Отже, отримуємо капчу, зберігаємо його в файл, розбираємо цю капчу вручну і шолом другий запит вже на сторінку з формою разом з POST даними для форми (і з розібраної капчі).
Не помиліться і не зробіть зайвого запиту до капчі!
Використання сервісів розпізнавання
У попередньому прикладі ми розпізнавали вручну, однак, найчастіше це робити недоцільно.
Краще підключити спеціальний сервіс, на якому спеціально навчені китайці за копійки розбирають капчи.
Як це працює: ви зчитуєте капчу в файл, а потім використовуючи API сервісу відправляєте цю капчу на сервіс. Через 3-5 секунд отримуєте цю капчу назад в розібраному вигляді.
Коштує це задоволення не дорого - менше одного долара за 1000 розібраних капч.
Сервіс anti-captcha
прості капчи
Нейронна мережа
Що вам робити далі:
Приступайте до вирішення завдань за наступним посиланням: завдання до уроку.
Коли все вирішите - переходите до вивчення нової теми.