Якщо ваш веб-скребок постійно блокується, це може бути пов’язано з відбитком TLS. Навіть якщо ви встановлюєте заголовки HTTP, як у браузері, системи захисту від ботів можуть виявляти автоматичні запити, аналізуючи ваш відбиток TLS під час рукостискання. Такі інструменти, як cURL Impersonate, який імітує конфігурації TLS браузера, можуть допомогти обійти ці блокування. Щоб отримати повну свободу копіювання, розгляньте можливість використання таких рішень, як API браузера Scraping Browser від Bright Data.
Ваш веб-скребок знову заблоковано? Ой, що тепер? Ви створили ці HTTP-заголовки та зробили його схожим на браузер, але сайт все одно зрозумів, що ваші запити автоматизовані. Як таке взагалі можливо? Просто: це ваш відбиток TLS! 😲
Пориньте в підступний світ відбитків пальців TLS, дізнайтеся, чому це тихий вбивця за більшістю блоків, і дізнайтеся, як його обійти.
Anti-Bot вас знову заблокував? Час дізнатися, чому!
Припустімо, що ви маєте справу з типовим сценарієм збирання. Ви робите автоматичний запит за допомогою HTTP-клієнта, як-от у Python або у JavaScript, щоб отримати HTML-код веб-сторінки та отримати з неї деякі дані.
Як ви, мабуть, уже знаєте, більшість веб-сайтів мають . Цікавитеся найкращою технікою проти подряпин? Ознайомтеся з нашим посібником щодо найкращих рішень проти подряпин! 🔐
Ці інструменти відстежують вхідні запити, відфільтровуючи підозрілі.
Якщо ваш запит виглядає так, ніби він надійшов від звичайної людини, все готово. інакше? Це буде замуровано! 🧱
Запити браузера проти запитів ботів
Тепер, як виглядає запит від звичайного користувача? легко! Просто запустіть DevTools свого браузера, перейдіть на вкладку «Мережа» та переконайтеся самі:
Якщо ви скопіюєте цей запит до cURL, вибравши опцію в меню, що відкривається правою кнопкою миші, ви отримаєте щось на зразок цього:
Якщо цей синтаксис виглядає вам як китайський, не хвилюйтеся — перегляньте наш вступ до cURL . 📖
По суті, «людський» запит — це звичайний HTTP-запит із додатковими заголовками (прапорці -H ). Системи захисту від ботів перевіряють ці заголовки, щоб визначити, чи надходить запит від бота чи від законного користувача у браузері.
Один із їхніх найбільших червоних прапорів? Заголовок ! Ознайомтеся з нашою публікацією про найкращі агенти користувача для веб-збирання . Цей заголовок автоматично встановлюється HTTP-клієнтами, але ніколи не збігається з тими, що використовуються справжніми браузерами.
Невідповідність цих заголовків? Це мертва роздача для ботів! 💀
Щоб отримати додаткові відомості, ознайомтеся з нашим посібником із .
Налаштування заголовків HTTP не завжди є вирішенням
Тепер ви можете подумати: «Легко виправити, я просто виконуватиму автоматичні запити з цими заголовками!» Але зачекайте… 🚨
Виконайте цей запит cURL, який ви скопіювали з DevTools:
Сюрприз! Сервер відповів вам сторінкою «403 Access Denied» від Cloudflare. Так, навіть із заголовками, схожими на браузер, вас все одно можуть заблокувати!
Але зачекайте, як?! Хіба це не той самий запит, який зробив би браузер? 🤔 Ну не зовсім...
Ключ лежить у моделі OSI
На прикладному рівні моделі OSI браузер і запити cURL однакові. Проте є всі базові шари, які ви можете не помітити. 🫠
Деякі з цих шарів часто є винуватцями цих надокучливих блоків, і інформація, що передається туди, саме те, на чому зосереджені передові технології захисту від скрапінгу. Хитрі підступні звірі! 👹
Системи захисту від ботів також приділяють пильну увагу відбитку із безпечного каналу зв’язку, встановленого між вашим сценарієм і цільовим веб-сервером на транспортному рівні.
Ось де речі відрізняються між браузером і автоматичним запитом HTTP! Круто, правда? Але тепер вам, мабуть, цікаво, що це означає… 🔍
Що таке відбиток TLS?
— це унікальний ідентифікатор, який створюють рішення для захисту від ботів, коли ваш браузер або клієнт HTTP встановлює безпечне з’єднання з веб-сайтом.
Це як цифровий підпис, який ваша машина залишає під час — початкової «розмови» між клієнтом і веб-сервером, щоб вирішити, як вони будуть шифрувати та захищати дані на транспортному рівні. 🤝
Коли ви робите HTTP-запит до сайту, базова бібліотека TLS у вашому браузері або HTTP-клієнті запускає процедуру рукостискання. Дві сторони, клієнт і сервер, починають запитувати один одного про такі речі, як: «Які протоколи шифрування ви підтримуєте?» і «Які шифри ми повинні використовувати?» ❓
На основі ваших відповідей сервер може визначити, чи є ви звичайним користувачем браузера чи автоматизованого сценарію за допомогою клієнта HTTP. Іншими словами, якщо ваші відповіді не збігаються з відповідями типових браузерів, вас можуть заблокувати.
Уявіть собі це рукостискання, як зустріч двох людей:
Людська версія :
Сервер: "Якою мовою ви розмовляєте?"
Браузер: "англійська, французька, китайська та іспанська"
Сервер: "Чудово, давайте поспілкуємося"
Версія бота :
Сервер: "Якою мовою ви розмовляєте?"
Бот: «Мяу! 🐈"
Сервер: «Вибачте, але ви не схожі на людину. Заблоковано!"
Відбитки TLS працюють нижче прикладного рівня моделі OSI. Це означає, що ви не можете просто налаштувати свій відбиток TLS за допомогою кількох рядків коду. 🚫 💻 🚫
Щоб підробити відбитки пальців TLS, вам потрібно поміняти конфігурації TLS клієнта HTTP на конфігурації справжнього браузера. Заковика? Не всі HTTP-клієнти дозволяють це робити!
Ось тут і вступають у гру такі інструменти, як . Ця спеціальна збірка cURL розроблена для імітації налаштувань TLS браузера, допомагаючи вам імітувати браузер із командного рядка!
Чому безголовий браузер теж не може бути рішенням
Тепер ви можете подумати: «Ну, якщо HTTP-клієнти видають «ботоподібні» TLS-відбитки, чому б просто не використати браузер для сканування?»
Ідея полягає в тому, щоб використовувати інструмент для виконання певних завдань на веб-сторінці за допомогою безголового браузера.
Незалежно від того, чи працює браузер у головному чи безголовному режимі, він все ще використовує ті самі основні бібліотеки TLS. Це гарна новина, оскільки це означає, що безголові браузери генерують «людський» відбиток TLS! 🎉
Це рішення, чи не так? Не зовсім… 🫤
Ось головне: безголові браузери постачаються з іншими конфігураціями, які кричать: «Я бот!» 🤖
Звичайно, ви можете спробувати приховати це за допомогою стелс-плагіна в Puppeteer Extra , але передові системи захисту від ботів все одно можуть винюхувати безголові браузери за допомогою викликів JavaScript і відбитків пальців браузера.
Отже, так, безголові браузери також не є надійним порятунком від антиботів. 😬
Як справді обійти TLS Fingerprinting
Перевірка відбитків пальців TLS є лише однією з багатьох передових тактик захисту від ботів, які реалізують складні рішення для захисту від скрапінгу. 🛡️
Щоб справді позбутися головного болю, пов’язаного зі зняттям відбитків пальців TLS та іншими неприємними блокуваннями, вам потрібне рішення для очищення нового рівня, яке забезпечує:
Надійні відбитки TLS
Необмежена масштабованість
Суперздатність розгадувати CAPTCHA
Вбудована IP-ротація через 72-мільйонну мережу IP-проксі
Автоматичні повтори
Можливості візуалізації JavaScript
Це деякі з багатьох функцій, які пропонує від Bright Data — комплексне рішення для хмарного браузера для ефективного та ефективного сканування Інтернету.
Цей продукт легко інтегрується з вашими улюбленими інструментами автоматизації браузера, включаючи Playwright, Selenium і Puppeteer. ✨
Просто налаштуйте логіку автоматизації, запустіть свій сценарій і дозвольте API Scraping Browser виконати всю брудну роботу. Забудьте про блоки та поверніться до важливого — скачування на повній швидкості! ⚡️
Вам не потрібно взаємодіяти зі сторінкою? Спробуйте від Bright Data!
Заключні думки
Тепер ви нарешті знаєте, чому роботи на рівні програми недостатньо, щоб уникнути всіх блокувань. Бібліотека TLS, яку використовує ваш HTTP-клієнт, також відіграє велику роль. TLS відбитки пальців? Більше не таємниця — ви її розгадали і знаєте, як її вирішити.
Шукаєте спосіб скребти, не торкаючись блоків? Не дивіться далі, ніж набір інструментів ! Приєднуйтеся до місії, щоб зробити Інтернет доступним для всіх — навіть через автоматичні запити HTTP. 🌐
До наступного разу продовжуйте вільно подорожувати Інтернетом!