Вашият уеб скрепер е блокиран отново? Уф, какво сега? Вие приковахте тези 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
). Анти-бот системите проверяват тези заглавки, за да разберат дали заявката идва от бот или легитимен потребител в браузър.
Едно от най-големите им червени знамена? Заглавката на потребителския агент ! Разгледайте нашата публикация за най-добрите потребителски агенти за уеб скрапинг . Тази заглавка се задава автоматично от 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
Това са някои от многото функции, предлагани от API на Scraping Browser на Bright Data — цялостно решение за облачен браузър за ефикасно и ефективно изтриване на мрежата.
Този продукт се интегрира безпроблемно с любимите ви инструменти за автоматизация на браузъра, включително Playwright, Selenium и Puppeteer. ✨
Просто настройте логиката за автоматизация, стартирайте своя скрипт и оставете API на Scraping Browser да се справи с мръсната работа. Забравете за блоковете и се върнете към това, което има значение - изстъргване с пълна скорост! ⚡️
Не е нужно да взаимодействате със страницата? Опитайте Web Unlocker на Bright Data!
Сега най-накрая знаете защо работата на ниво приложение не е достатъчна, за да избегнете всички блокове. TLS библиотеката, която вашият HTTP клиент използва, също играе голяма роля. TLS пръстови отпечатъци? Вече не е мистерия – разгадали сте я и знаете как да се справите с нея.
Търсите начин да стържете, без да удряте блокове? Не търсете повече от пакета от инструменти на Bright Data ! Присъединете се към мисията да направите интернет достъпен за всички – дори чрез автоматизирани HTTP заявки. 🌐
До следващия път, продължавайте да сърфирате свободно в мрежата!