paint-brush
Ролята на пръстовия отпечатък на TLS в уеб скрапингаот@brightdata
255 показания

Ролята на пръстовия отпечатък на TLS в уеб скрапинга

от Bright Data6m2024/10/18
Read on Terminal Reader

Твърде дълго; Чета

Ако вашият уеб скрепер продължава да се блокира, това може да се дължи на пръстовия ви отпечатък на TLS. Дори когато зададете вашите HTTP заглавки като браузър, анти-бот системите могат да забележат автоматизирани заявки, като анализират вашия TLS отпечатък по време на ръкостискането. Инструменти като cURL Impersonate, който имитира TLS конфигурации на браузъра, могат да помогнат за заобикаляне на тези блокове. За пълна свобода на сканиране обмислете използването на решения като API на Scraping Browser на Bright Data.
featured image - Ролята на пръстовия отпечатък на TLS в уеб скрапинга
Bright Data HackerNoon profile picture
0-item

Вашият уеб скрепер е блокиран отново? Уф, какво сега? Вие приковахте тези HTTP заглавки и го направихте да изглежда точно като браузър, но сайтът все пак разбра, че заявките ви са автоматизирани. Как изобщо е възможно това? Просто: това е вашият TLS отпечатък! 😲


Потопете се в подъл свят на TLS пръстови отпечатъци, разкрийте защо е тихият убиец зад повечето блокове и ви научете как да го заобиколите.

Anti-Bot ви блокира отново? Време е да научите защо!

Да приемем, че имате работа с типичен сценарий за изстъргване. Вие правите автоматизирана заявка с помощта на HTTP клиент — като Requests в Python или Axios в JavaScript — за извличане на HTML на уеб страница, за да изтриете някои данни от нея.


Както вероятно вече знаете, повечето уебсайтове разполагат с технологии за защита от ботове . Любопитни ли сте за най-добрата технология против остъргване? Вижте нашето ръководство за най-добрите решения против остъргване! 🔐


Тези инструменти следят входящите заявки, като филтрират подозрителните.


Антибот, който спасява невинния сървър


Ако заявката ви изглежда като че идва от обикновен човек, можете да тръгнете. иначе? Ще бъде преграден! 🧱

Заявки за браузър срещу заявки за ботове

Сега, как изглежда заявка от обикновен потребител? лесно! Просто задействайте DevTools на браузъра си, отидете до раздела Мрежа и вижте сами:


Избиране на уеб заявка в 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 заглавки за уеб скрапинг .

Задаването на HTTP заглавки не винаги е решението

Сега може би си мислите: „Лесно решение, просто ще изпълнявам автоматизирани заявки с тези заглавки!“ Но изчакайте за секунда... 🚨


Продължете и стартирайте тази cURL заявка, която сте копирали от DevTools:


Репликиране на заявката в cURL


изненада! Сървърът ви отвърна със страница „403 Access Denied“ от Cloudflare. Да, дори със заглавките, подобни на браузъра, пак можете да бъдете блокирани!


В крайна сметка кракването на Cloudflare не е толкова лесно. 😅


Но чакайте, как?! Не е ли това абсолютно същата заявка, която браузърът би направил? 🤔 Е, не съвсем...

Ключът се крие в модела OSI

На ниво приложение на модела OSI, браузърът и cURL заявките са едни и същи. И все пак има всички основни слоеве, които може да пренебрегнете. 🫠


OSI модел


Някои от тези слоеве често са виновниците зад тези досадни блокове и прехвърлената там информация е точно това, върху което се фокусират напредналите технологии против изстъргване. Хитри подли зверове! 👹


Например, те разглеждат вашия IP адрес , който се изтегля от мрежовия слой. Искате ли да избегнете тези IP забрани? Следвайте нашия урок за това как да избегнете IP бан с проксита !


За съжаление това не е всичко! 😩


Системите срещу ботове също обръщат голямо внимание на пръстовия отпечатък на TLS от защитения комуникационен канал, установен между вашия скрипт и целевия уеб сървър на транспортния слой.


Ето тук нещата се различават между браузър и автоматизирана HTTP заявка! Готино, нали? Но сега сигурно се чудите какво означава това... 🔍

Какво е TLS пръстов отпечатък?

TLS пръстовият отпечатък е уникален идентификатор, който анти-бот решенията създават, когато вашият браузър или HTTP клиент създава защитена връзка към уебсайт.


TLS пръстовият отпечатък на браузър Chrome от browserleaks.com/tls


Това е като цифров подпис, който вашата машина оставя след себе си по време на TLS ръкостискане — първоначалният „разговор“ между клиент и уеб сървъра, за да решат как ще шифроват и защитят данните на транспортния слой. 🤝


Когато направите HTTP заявка към сайт, основната TLS библиотека във вашия браузър или HTTP клиент стартира процедурата за ръкостискане. Двете страни, клиентът и сървърът, започват да се питат взаимно неща като: „Какви протоколи за криптиране поддържате?“ и „Кои шифри трябва да използваме?“ ❓


TLS ръкостискане


Въз основа на вашите отговори сървърът може да разбере дали сте обикновен потребител в браузър или автоматизиран скрипт, използващ HTTP клиент. С други думи, ако отговорите ви не съвпадат с тези на типичните браузъри, може да бъдете блокирани.


Представете си това ръкостискане като среща на двама души:


Човешка версия :

  • Сървър: „Какъв език говорите?“

  • Браузър: "Английски, френски, китайски и испански"

  • Сървър: „Страхотно, нека поговорим“


Версия на бот :

  • Сървър: „Какъв език говорите?“

  • Бот: „Мяу! 🐈”

  • Сървър: „Съжалявам, но не изглеждате като човешко същество. Блокиран!"


Котките не са човешки същества. Или са?


TLS пръстовият отпечатък работи под слоя на приложението на OSI модела. Това означава, че не можете просто да настроите вашия TLS отпечатък с няколко реда код. 🚫 💻 🚫


За да подправите TLS пръстови отпечатъци, трябва да размените TLS конфигурациите на вашия HTTP клиент с тези на истински браузър. уловката? Не всички HTTP клиенти ви позволяват да правите това!


по дяволите!


Това е мястото, където инструменти като cURL Impersonate влизат в игра. Тази специална компилация на cURL е проектирана да имитира TLS настройките на браузъра, като ви помага да симулирате браузър от командния ред!

Защо Headless Browser може също да не е решение

Сега може би си мислите: „Е, ако HTTP клиентите дават „подобни на бот“ TLS отпечатъци, защо просто не използвате браузър за изтриване?“


Голям мозъчен ход!


Идеята е да се използва инструмент за автоматизация на браузъра, за да се изпълняват конкретни задачи на уеб страница с браузър без глава.


Независимо дали браузърът работи в режим с глава или без глава, той все още използва същите основни TLS библиотеки. Това е добра новина, защото означава, че браузърите без глава генерират „човешки“ TLS отпечатък! 🎉


Това е решението, нали? Не наистина… 🫤


Не съвсем...


Ето го кикъра: браузърите без глава идват с други конфигурации, които крещят: „Аз съм бот!“ 🤖


Разбира се, бихте могли да опитате да скриете това със стелт плъгин в Puppeteer Extra , но усъвършенстваните анти-бот системи все още могат да надушат браузъри без глава чрез предизвикателства на JavaScript и пръстови отпечатъци на браузъра.


Така че, да, браузърите без глава също не са вашето безупречно бягство пред анти-ботовете. 😬

Как наистина да заобиколите TLS Fingerprinting

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 заявки. 🌐


До следващия път, продължавайте да сърфирате свободно в мрежата!

L O A D I N G
. . . comments & more!

About Author

Bright Data HackerNoon profile picture
Bright Data@brightdata
From data collection to ready-made datasets, Bright Data allows you to retrieve the data that matters.

ЗАКАЧВАЙТЕ ЕТИКЕТИ

ТАЗИ СТАТИЯ Е ПРЕДСТАВЕНА В...