Ваш веб-скребок знову заблоковано? Ой, що тепер? Ви створили ці HTTP-заголовки та зробили його схожим на браузер, але сайт все одно зрозумів, що ваші запити автоматизовані. Як таке взагалі можливо? Просто: це ваш відбиток TLS! 😲
Пориньте в підступний світ відбитків пальців TLS, дізнайтеся, чому це тихий вбивця за більшістю блоків, і дізнайтеся, як його обійти.
Припустімо, що ви маєте справу з типовим сценарієм збирання. Ви робите автоматичний запит за допомогою HTTP-клієнта, як-от Requests у Python або Axios у JavaScript, щоб отримати HTML-код веб-сторінки та отримати з неї деякі дані.
Як ви, мабуть, уже знаєте, більшість веб-сайтів мають технології захисту від ботів . Цікавитеся найкращою технікою проти подряпин? Ознайомтеся з нашим посібником щодо найкращих рішень проти подряпин! 🔐
Ці інструменти відстежують вхідні запити, відфільтровуючи підозрілі.
Якщо ваш запит виглядає так, ніби він надійшов від звичайної людини, все готово. інакше? Це буде замуровано! 🧱
Тепер, як виглядає запит від звичайного користувача? легко! Просто запустіть DevTools свого браузера, перейдіть на вкладку «Мережа» та переконайтеся самі:
Якщо ви скопіюєте цей запит до cURL, вибравши опцію в меню, що відкривається правою кнопкою миші, ви отримаєте щось на зразок цього:
curl 'https://kick.com/emotes/ninja' \ -H 'accept: application/json' \ -H 'accept-language: en-US,en;q=0.9' \ -H 'cache-control: max-age=0' \ -H 'cluster: v1' \ -H 'priority: u=1, i' \ -H 'referer: https://kick.com/ninja' \ -H 'sec-ch-ua: "Google Chrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"' \ -H 'sec-ch-ua-mobile: ?0' \ -H 'sec-ch-ua-platform: "Windows"' \ -H 'sec-fetch-dest: empty' \ -H 'sec-fetch-mode: cors' \ -H 'sec-fetch-site: same-origin' \ -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36'
Якщо цей синтаксис виглядає вам як китайський, не хвилюйтеся — перегляньте наш вступ до cURL . 📖
По суті, «людський» запит — це звичайний HTTP-запит із додатковими заголовками (прапорці -H
). Системи захисту від ботів перевіряють ці заголовки, щоб визначити, чи надходить запит від бота чи від законного користувача у браузері.
Один із їхніх найбільших червоних прапорів? Заголовок User-Agent ! Ознайомтеся з нашою публікацією про найкращі агенти користувача для веб-збирання . Цей заголовок автоматично встановлюється HTTP-клієнтами, але ніколи не збігається з тими, що використовуються справжніми браузерами.
Невідповідність цих заголовків? Це мертва роздача для ботів! 💀
Щоб отримати додаткові відомості, ознайомтеся з нашим посібником із HTTP-заголовків для веб-збирання .
Тепер ви можете подумати: «Легко виправити, я просто виконуватиму автоматичні запити з цими заголовками!» Але зачекайте… 🚨
Виконайте цей запит cURL, який ви скопіювали з DevTools:
Сюрприз! Сервер відповів вам сторінкою «403 Access Denied» від Cloudflare. Так, навіть із заголовками, схожими на браузер, вас все одно можуть заблокувати!
Зрештою, зламати Cloudflare не так просто. 😅
Але зачекайте, як?! Хіба це не той самий запит, який зробив би браузер? 🤔 Ну не зовсім...
На прикладному рівні моделі OSI браузер і запити cURL однакові. Проте є всі базові шари, які ви можете не помітити. 🫠
Деякі з цих шарів часто є винуватцями цих надокучливих блоків, і інформація, що передається туди, саме те, на чому зосереджені передові технології захисту від скрапінгу. Хитрі підступні звірі! 👹
Наприклад, вони переглядають вашу IP-адресу , отриману з мережевого рівня. Хочете уникнути цих заборон IP? Дотримуйтеся нашого підручника про те, як уникнути блокування IP-адрес за допомогою проксі-серверів !
На жаль, це ще не все! 😩
Системи захисту від ботів також приділяють пильну увагу відбитку TLS із безпечного каналу зв’язку, встановленого між вашим сценарієм і цільовим веб-сервером на транспортному рівні.
Ось де речі відрізняються між браузером і автоматичним запитом HTTP! Круто, правда? Але тепер вам, мабуть, цікаво, що це означає… 🔍
Відбиток пальця TLS — це унікальний ідентифікатор, який створюють рішення для захисту від ботів, коли ваш браузер або клієнт HTTP встановлює безпечне з’єднання з веб-сайтом.
Це як цифровий підпис, який ваша машина залишає під час рукостискання TLS — початкової «розмови» між клієнтом і веб-сервером, щоб вирішити, як вони будуть шифрувати та захищати дані на транспортному рівні. 🤝
Коли ви робите HTTP-запит до сайту, базова бібліотека TLS у вашому браузері або HTTP-клієнті запускає процедуру рукостискання. Дві сторони, клієнт і сервер, починають запитувати один одного про такі речі, як: «Які протоколи шифрування ви підтримуєте?» і «Які шифри ми повинні використовувати?» ❓
На основі ваших відповідей сервер може визначити, чи є ви звичайним користувачем браузера чи автоматизованого сценарію за допомогою клієнта HTTP. Іншими словами, якщо ваші відповіді не збігаються з відповідями типових браузерів, вас можуть заблокувати.
Уявіть собі це рукостискання, як зустріч двох людей:
Людська версія :
Сервер: "Якою мовою ви розмовляєте?"
Браузер: "англійська, французька, китайська та іспанська"
Сервер: "Чудово, давайте поспілкуємося"
Версія бота :
Сервер: "Якою мовою ви розмовляєте?"
Бот: «Мяу! 🐈"
Сервер: «Вибачте, але ви не схожі на людину. Заблоковано!"
Відбитки TLS працюють нижче прикладного рівня моделі OSI. Це означає, що ви не можете просто налаштувати свій відбиток TLS за допомогою кількох рядків коду. 🚫 💻 🚫
Щоб підробити відбитки пальців TLS, вам потрібно поміняти конфігурації TLS клієнта HTTP на конфігурації справжнього браузера. Заковика? Не всі HTTP-клієнти дозволяють це робити!
Ось тут і вступають у гру такі інструменти, як cURL Impersonate . Ця спеціальна збірка cURL розроблена для імітації налаштувань TLS браузера, допомагаючи вам імітувати браузер із командного рядка!
Тепер ви можете подумати: «Ну, якщо HTTP-клієнти видають «ботоподібні» TLS-відбитки, чому б просто не використати браузер для сканування?»
Ідея полягає в тому, щоб використовувати інструмент автоматизації браузера для виконання певних завдань на веб-сторінці за допомогою безголового браузера.
Незалежно від того, чи працює браузер у головному чи безголовному режимі, він все ще використовує ті самі основні бібліотеки TLS. Це гарна новина, оскільки це означає, що безголові браузери генерують «людський» відбиток TLS! 🎉
Це рішення, чи не так? Не зовсім… 🫤
Ось головне: безголові браузери постачаються з іншими конфігураціями, які кричать: «Я бот!» 🤖
Звичайно, ви можете спробувати приховати це за допомогою стелс-плагіна в Puppeteer Extra , але передові системи захисту від ботів все одно можуть винюхувати безголові браузери за допомогою викликів JavaScript і відбитків пальців браузера.
Отже, так, безголові браузери також не є надійним порятунком від антиботів. 😬
Перевірка відбитків пальців TLS є лише однією з багатьох передових тактик захисту від ботів, які реалізують складні рішення для захисту від скрапінгу. 🛡️
Щоб справді позбутися головного болю, пов’язаного зі зняттям відбитків пальців TLS та іншими неприємними блокуваннями, вам потрібне рішення для очищення нового рівня, яке забезпечує:
Надійні відбитки TLS
Необмежена масштабованість
Суперздатність розгадувати CAPTCHA
Вбудована IP-ротація через 72-мільйонну мережу IP-проксі
Автоматичні повтори
Можливості візуалізації JavaScript
Це деякі з багатьох функцій, які пропонує Scraping Browser API від Bright Data — комплексне рішення для хмарного браузера для ефективного та ефективного сканування Інтернету.
Цей продукт легко інтегрується з вашими улюбленими інструментами автоматизації браузера, включаючи Playwright, Selenium і Puppeteer. ✨
Просто налаштуйте логіку автоматизації, запустіть свій сценарій і дозвольте API Scraping Browser виконати всю брудну роботу. Забудьте про блоки та поверніться до важливого — скачування на повній швидкості! ⚡️
Вам не потрібно взаємодіяти зі сторінкою? Спробуйте Web Unlocker від Bright Data!
Тепер ви нарешті знаєте, чому роботи на рівні програми недостатньо, щоб уникнути всіх блокувань. Бібліотека TLS, яку використовує ваш HTTP-клієнт, також відіграє велику роль. TLS відбитки пальців? Більше не таємниця — ви її розгадали і знаєте, як її вирішити.
Шукаєте спосіб скребти, не торкаючись блоків? Не дивіться далі, ніж набір інструментів Bright Data ! Приєднуйтеся до місії, щоб зробити Інтернет доступним для всіх — навіть через автоматичні запити HTTP. 🌐
До наступного разу продовжуйте вільно подорожувати Інтернетом!