Касада анти-ботские методы: сэкономьте деньги с этими решениями с открытым исходным кодом

Касада анти-ботские методы: сэкономьте деньги с этими решениями с открытым исходным кодом

15 июля 2025 г.

Обход анти-ботов является одной из основных болевых точек, с которыми сталкивается профессиональный веб-скребок за свою карьеру. К счастью, рынок предлагает несколько решений для их обхода, но делегирование тяжелой работы всегда поставляется с прикрепленным ценником, который не для каждого кармана.

Как говорится, 'Если вы хотите что -то сделать правильно, сделайте это самостоятельно.«Итак, давайте продолжим серию статей об обходе хорошо известных анти-ботов с помощью инструментов с открытым исходным кодом.

Сделав то же самое с CloudFlare, сегодня это очередьКасадаАвстралийская анти-ботская компания. Если вы заинтересованы в изучении больше,Вы можете посмотреть хороший разговор сНик Риенетс,Компания Kasada's, на канале TWSC YouTubeо анти-ботской промышленности и ее эволюции.

Итак, давайте посмотрим, какие инструменты с открытым исходным кодом мы можем использовать для обхода анти-бота Kasada в 2025 году, сохраняя несколько долларов в наших карманах.

Инструменты с открытым исходным кодом для обхода касады

Как всегда, нам нужно выбрать веб -сайт, на котором можно проверить наши решения. Сегодня это Канада Гус, сайт электронной коммерции знаменитой бренды Outerwear.

Самый простой способ обнаружить, когда веб -сайт использует Kasada, - это просить об этомWappalyzer, который имеет расширение браузера, которое вы можете использовать во время посещения веб -сайта для обнаружения его технического стека.

В качестве двойной проверки, поскольку данные Wappalyzer могут быть устаревшими, вы можете посетить веб -сайт с открытой вкладкой сети инструментов разработчиков (но сначала отметьте поле «Журнал сохранения»).

Если вы заметите, что веб-сайт сначала возвращает ошибку 429, а затем загружается правильно, это типичное поведение веб-сайта, защищенного KASADA.

Это также подтверждается наличием этого заголовка контроля доступа на следующих вызовах: X-KPSDK-CT, X-KPSDK-R и X-KPSDK-C и X-KPSDK-CT.


Итак, расчет токена достаточно?

Я часто слышу это от людей, пытающихся обойти анти-ботское решение: нам нужно генерировать достоверный токен, чтобы получить разрешение для очистки данных веб-сайта.

Хотя было бы интересно научиться обратить вспять коммерческое решение, такое как Касада, это не лучший подход, если вам скоро понадобятся данные. Это требует времени, и вы должны перезапустить после каждого изменения в анти-ботском программном обеспечении. Несмотря на трудности,Несколько репозиториев на GitHub пытаются это сделатьПолем

Вместо этого мой предпочтительный подход заключается в создании человеческого запроса, который смешивается с фактическим трафиком веб-сайта и остается незамеченным от толпы.

Конечно, этот подход медленнее, поскольку ему требуется инструмент автоматизации браузера, но он также более этичен, чем бомбардировка целевого сервера сотнями запросов в секунду.

В этой статье мы увидим три различных инструмента с открытым исходным кодом, которые позволят вам обойти Kasada с помощью Playwright и модифицированного браузера.

Стандартный драматург ❌

Прежде чем попробовать более незамеченные инструменты, давайте начнем с простого сценария, используя стандартную версию Playwright и Brave Browser.

from playwright.sync_api import sync_playwright
import time
CHROMIUM_ARGS= [
		'--no-sandbox',
		'--disable-setuid-sandbox',
		'--no-first-run',
		'--disable-blink-features=AutomationControlled',
		'--start-maximized'
		
	]
		
with sync_playwright() as p:

	
	browser = p.chromium.launch_persistent_context(user_data_dir='./userdata/',channel='chrome',no_viewport=True,executable_path='/Applications/Brave Browser.app/Contents/MacOS/Brave Browser', headless=False,slow_mo=200, args=CHROMIUM_ARGS,ignore_default_args=["--enable-automation"])
	all_pages = browser.pages
	page = all_pages[0]
	page.goto('https://www.canadagoose.com/', timeout=0)
	time.sleep(10)
	page.goto('https://www.canadagoose.com/it/it/shop/donna/capispalla/giacche-imbottite/shop-womens-puffers', timeout=0)
	time.sleep(10)
	browser.close()

Я часто использую храбрых в этих примерах, потому что это браузер, который добавляет некоторый шум к отпечатке пальцев Webgl, хотя он не такой мощный, как настоящий анти-детектирующий браузер.

Тест с треском терпит неудачу, так как мы получаем пустой экран для обоих URL -адресов, еще один отличительный знак Касады.

Patchright ✅

Слегающая версия драматурга - этоPatchright, что изменяет некоторые из его аргументов по умолчанию и исправляет хорошо известные недостатки, которые делают его более обнаруженным анти-ботом.

Лучшая часть игры?

Вам просто нужно изменить импортный пакет; Скребок такой же, как у драматурга. Я только что добавил прокси и использовал браузер по умолчанию, установленный с библиотекой.

from patchright.sync_api import sync_playwright
import time
import os


proxies = {
		'server': 'http://ENDPOINT:PORT',
		'username': 'USER',
		'password': 'PWD'
	}

CHROMIUM_ARGS= [
		'--no-first-run',
		'--disable-blink-features=AutomationControlled',
		'--force-webrtc-ip-handling-policy'
	]
with sync_playwright() as p:
	browser = p.chromium.launch(headless=False,slow_mo=200, args=CHROMIUM_ARGS,ignore_default_args=["--enable-automation"])
	context = browser.new_context(proxy=proxies, ignore_https_errors=True, permissions=['geolocation'])
	page = context.new_page()
	page.goto('https://www.canadagoose.com/', timeout=0)
	time.sleep(10)
	page.goto('https://www.canadagoose.com/it/it/shop/donna/capispalla/giacche-imbottite/shop-womens-puffers', timeout=0)
	time.sleep(10)
	HTML_text = page.content()
	print(HTML_text)
	browser.close()

Теперь скребок работает как очарование.

Зендривер ✅

Еще один пакет, который я проверилЗендривер(которая является вилкойNodriver, преемник незамеченного-хромедривер).
Я выбрал его вместо Nodriver, потому что это обновляется чаще, и мне было любопытно проверить это.

Он использует протокол разработчика Chrome для взаимодействия с браузером, а не с Webdriver, и Python Async API для ускорения ползания.

import asyncio
import zendriver as zd
import time

proxies = {
		'server': 'http://ENDPOINT:PORT',
		'username': 'USER',
		'password': 'PWD'
	}

async def main():
	async with await zd.start(browser_executable_path='/Applications/Brave Browser.app/Contents/MacOS/Brave Browser', proxy=proxies) as browser:
		await browser.get('https://www.canadagoose.com/')
		time.sleep(10)
		await browser.get('https://www.canadagoose.com/it/it/shop/donna/capispalla/giacche-imbottite/shop-womens-puffers')
		time.sleep(10)
		await browser.stop()

if __name__ == "__main__":
	asyncio.run(main())

Небольшой сценарий может обойти касаду и показывать нам страницы, не требуя, чтобы мы устанавливали какие -либо конкретные варианты. Отличное открытие!

Камуфкс ✅

И последнее, но не менее важное: одна из самых упомянутых библиотек на этих страницах - этоКамуфоксПолем

Это борьба с открытым исходным кодом, управляемый Playwright. Он добавляет важные особенности, такие как человеческое движение мыши и способность создавать реальные отпечатки пальцев.

В этом случае мы просто создали новый отпечаток пальца машины Windows, но не перемещали мышь вокруг страницы, но этого было достаточно, чтобы правильно загрузить запрошенные страницы.

from camoufox.sync_api import Camoufox
import time
import os


proxies = {
		'server': 'http://ENDPOINT:PORT',
		'username': 'USER',
		'password': 'PWD'
	}


with Camoufox(humanize=True,os="windows", geoip=True, proxy=proxies) as browser:
	page = browser.new_page()
	page.goto('https://www.canadagoose.com/', timeout=0)
	time.sleep(5)
	page.goto('https://www.canadagoose.com/it/it/shop/donna/capispalla/giacche-imbottite/shop-womens-puffers', timeout=0)
	time.sleep(5)
	HTML_text = page.content()
	print(HTML_text)
	browser.close()

Окончательные замечания

Сообщество с открытым исходным кодом всегда удивительно и создает такие замечательные инструменты, которые иногда не получают правильной оценки.

Камуфокс является отличным примером продукта, который находится на том же уровне, что и коммерческий.

Какой лучший инструмент с открытым исходным кодом, который вы используете для соскоба? Пожалуйста, напишите это в разделе комментариев!


Статья является частью«Лаборатория»серияПьерлуиджи ВинсгуерраПолем Проверьте егоПодмазочныйСтраница для получения дополнительных знаний о скребке.


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE