Разбиране на пречките, поставени от CAPTCHA пред вашите опити за събиране на данни; и как да ги заобиколите.

Въведение

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

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

Една особено предизвикателна мярка е прилагането на CAPTCHA (Напълно автоматизирани публични тестове на Тюринг за разграничаване на компютрите от хората). Вероятно сте се сблъсквали с тях и преди – тези малки пъзели или предизвикателства, предназначени да правят разлика между автоматизирани ботове/скрепери и потребители.

В тази публикация ще разгледаме как и защо се генерират CAPTCHA, препятствията, които създават пред вашите опити за събиране на данни, и как да ги заобиколите, докато използвате Scraping Browser, a Puppeteer/Playwright /Съвместим със Selenium бърз GUI браузър, който идва с готова технология за заобикаляне на CAPTCHA.

Разбиране на CAPTCHA и тяхното въздействие върху уеб скрапинга

Всички сме се сблъсквали с тези разочароващи предизвикателства на уебсайтове, където трябва да докажем, че не сме роботи - те обикновено включват визуално изкривени букви, цифри или изображения, които потребителите трябва да идентифицират и въведат правилно, за да получат достъп до определени части на уебсайта. Това са CAPTCHA, които са мерки за сигурност, използвани от уебсайтове за разграничаване между ботове/скрепери и легитимни човешки потребители.

Когато вашият уеб робот срещне CAPTCHA, той е изправен пред предизвикателство. Тъй като CAPTCHA са проектирани да бъдат визуално или интерактивно решени от хора, автоматизираните процеси на сканиране не могат лесно да се справят с тях. В резултат на това уеб роботът се забива и напредъкът ви при сканиране спира, докато CAPTCHA не бъде завършено успешно.

Но какво подтиква уебсайт да генерира CAPTCHA на първо място (което впоследствие блокира нашия опит за изтриване)? Нека да разгледаме някои от причините за това:

  • Отпечатък на браузъра: Уебсайтовете може да използват техники като пръстов отпечатък на браузър или устройство, за да идентифицират ботове или скрепери. Тези техники анализират различни атрибути на браузъра и устройството на потребителя, като резолюция на екрана, инсталирани шрифтове и плъгини на браузъра, за да създадат уникален пръстов отпечатък, съдържащ информация за конфигурацията на браузъра на потребителя, както и за софтуерната/хардуерната среда. Когато пръстовият отпечатък на скрепера бъде открит, уебсайтът може да отговори с CAPTCHA, за да потвърди потребителя.
  • Необичаен потребителски агент: Уеб скреперите често използват низове по подразбиране или разпознаваеми потребителски агенти, което ги прави лесно откриваеми от уебсайтовете. Когато уебсайт открие нестандартен или подозрителен потребителски агент, той може да задейства CAPTCHA, за да провери легитимността на заявката.
  • Проследяване на бисквитки: Уебсайтовете могат да използват бисквитки, за да проследяват активността на потребителите и да идентифицират ботове. Скреперите може да не обработват бисквитките правилно или да няма валидна информация за сесията, което може да подкани уебсайта да представи CAPTCHA, за да потвърди самоличността на потребителя.
  • Модели на движение на мишката и щракване: Съвременните CAPTCHA, като ReCaptcha, могат да анализират движението на мишката и моделите на щракване, за да определят човешкото поведение. Ботовете често имат предвидимо движение, което може да задейства представянето на CAPTCHA.

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

Разбира се, можете да използвате библиотеки и проксита на трети страни, но те идват със собствен набор от предизвикателства:

  • Ще трябва да ги интегрирате в съществуващия стек от технологии, което може да отнеме много време и може да изисква съществени промени в кодовата ви база.
  • Тези решения може не винаги да са напълно надеждни, особено в дългосрочен план, когато уебсайтовете актуализират своите механизми за генериране на CAPTCHA. Може да откриете, че постоянно се борите да се адаптирате и да поддържате ефективността на изстъргването.
  • Те изискват да инвестирате в допълнителна инфраструктура, което води до увеличаване на разходите и усложняване на управлението.

Нека сега да разгледаме как усъвършенствано решение като Scraping Browser на Bright Data може да ни помогне автоматично да заобиколим CAPTCHA и други предизвикателства.

Преодоляване на CAPTCHA с технологията за отключване на Scraping Browser

„Scraping Browser“ на Bright Data е цялостно решение „всичко в едно“, което съчетава удобството на истински, автоматизиран браузър с мощната инфраструктура за отключване на Bright Data и услуги за управление на прокси сървъри. Освен това е напълно съвместим с API на Puppeteer/Playwright/Selenium.

Научете повече:



Нека да видим колко лесно е да настроите и използвате Scraping Browser:

  • Преди да напишете някакъв скрап код, вие използвате Puppeteer/Playwright/Selenium, за да се свържете с браузъра за скрапиране на Bright Data, като използвате вашите идентификационни данни, чрез Websockets.
  • От този момент нататък всичко, за което трябва да се грижите, е да развиете своя скрепер, като използвате стандартните библиотеки Puppeteer/Playwright/Selenium и нищо повече.

Няма нужда да се справяте с множество библиотеки на трети страни, които се занимават със задачи като управление на прокси и пръстови отпечатъци, IP ротация, автоматични повторни опити, регистриране илиразрешаване на CAPTCHAвътрешно. Scraping Browser се грижи за всичко това и още повече в сървърната инфраструктура на Bright Data.

Как може да направи това? Това е така, защото, както споменахме по-рано, Scraping Browser е вграден с мощна инфраструктура за отключване на Bright Data, което означава, че пристига с технология за заобикаляне на CAPTCHA направо от кутията, не са необходими допълнителни мерки на твоята част.

Технологията за уеб отключване:

  • Позволява почти перфектна емулация на информация за пръстови отпечатъци на браузъра, включително плъгини, шрифтове, версия на браузъра, бисквитки, HTML5 canvas елемент или WebGL пръстов отпечатък, пръстов отпечатък на Web Audio API, операционна система, разделителна способност на екрана и др.
  • Автоматично конфигурира съответната информация в заглавката (като низове на User-Agent) и управлява бисквитките според изискванията на целевия уебсайт, така че да избегнете откриването и блокирането ви като „обхождащ“.
  • Имитира всички устройства, свързани към дадена система, включително съответните им драйвери, движения на мишката, разделителна способност на екрана и други свойства на устройството, постигайки пълна имитация на изброяване на устройства.
  • Ефективно се справя с управлението на HTTP хедъра както по време на процеса на декодиране (когато е получена заявката), така и на кодиране (когато е изпратен отговорът).
  • Безпроблемно надстройва HTTP протоколите с лекота и завърта TLS/SSL отпечатъците, така че версиите на протокола, отправящи заявките, да съвпадат с тези на заглавката на вашия браузър и вашите заявки да изглеждат истински.
  • Може да решава reCAPTCHA, hCaptcha, px_captcha, SimpleCaptcha и GeeTest CAPTCHA и непрекъснато се актуализира, за да се справи с уебсайтове, които откриват нови начини за откриване на вашите усилия за изтриване.
  • Това е управлявана услуга, което означава, че не е нужно да се притеснявате за актуализиране на кода си, за да сте в крак с непрекъснато променящите се механизми за генериране на CAPTCHA на уебсайта. Bright Data се грижи за всичко това вместо вас, обработвайки актуализациите и поддръжката от своя страна.

💡Забележка: От решаване на CAPTCHA до генериране на потребителски агент до управление на бисквитки и емулация на пръстови отпечатъци, инфраструктурата за отключване на Bright Data може да заобиколи дори най-сложните мерки против изтриване . Научете повече тук.

Нека сега да видим Scraping Browser в действие. Ще използваме Playwright.

Конфигуриране на Scraping Browser на Bright Data

За да използвате Scraping Browser, първо трябва да се регистрирате за безплатен пробен период (щракнете върху ‘Стартиране на безплатен пробен период’ и въведете съответната информация). След като въведете начина си на плащане, се добавя безплатен кредит от $5, за да можете да започнете.

След като влезете, изпълнете следните стъпки:

  • На таблото за управление преминете към секцията „Моите проксита“ и под Браузър за сканиране щракнете върху „Първи стъпки“.

  • На страницата „Създаване на нов прокси“ въведете име за вашата прокси зона на Scraping Browser. Не забравяйте да изберете правилното име за вашия браузър, тъй като то не може да бъде променено след създаването му.
  • Кликнете върху „Добавяне на прокси“, за да създадете и запазите браузъра си.
  • За да сканирате уебсайт с Scraping Browser в Node.js или Python, отидете в раздела „Параметри за достъп“ на вашата прокси зона. Ще намерите идентификационните си данни за API, включително вашето потребителско име (Customer_ID), име на зона (прикачено към потребителското име) и парола — копирайте ги на безопасно място, тъй като ще ги използваме в нашия код.

Кодът: Изтриване на Amazon с помощта на браузъра за изтриване и Python

След като имате под ръка подробностите за Scraping Browser, инсталирайте следните пакети на Python в директорията на вашия проект. Тук ще използвате API на Playwright, за да извършвате асинхронно уеб скрапинг.

pip install asyncio
pip install playwright

Ще посетим страница с продуктова категория в Amazon и ще изтрием първата страница с резултати с помощта на Playwright, като компилираме нашите резултати от изтриването в масив от имена на артикули и техните цени.

import asyncio
from playwright.async_api import async_playwright

# should look like 'brd-customer-<ACCOUNT ID>-zone-<ZONE NAME>:<PASSWORD>'
auth = 'USERNAME:PASSWORD'

async def main():
    async with async_playwright() as playwright:
        browser = await playwright.chromium.connect_over_cdp(f'wss://{auth}@brd.superproxy.io:9222')
        page = await browser.new_page()
        await page.set_default_navigation_timeout(2 * 60 * 1000)
        await page.goto('https://www.amazon.in/b?ie=UTF8&node=14439003031')
        await page.wait_for_selector('div[class*="a-section a-spacing-base"]', timeout=5000)
        elements = await page.query_selector_all('div[class*="a-section a-spacing-base"]')
        results = []
        for element in elements:
            item_name = await element.query_selector('div[class*="s-title-instructions-style"]')?.text_content().strip() or ''
            item_price = await element.query_selector('div[class*="s-price-instructions-style"] .a-price .a-offscreen')?.text_content().strip() or ''
            results.append({
                'itemName': item_name,
                'itemPrice': item_price,
            })
         print(results)
         await browser.close()

# Run the asynchronous function
asyncio.run(main())

Но с отдалечената връзка с браузъра за извличане на данни на Bright Data (чрез WebSockets и протокола Chrome DevTools) чрез метода connect_over_cdp на Playwright…

browser = await 
playwright.chromium.connect_over_cdp(f’wss://{auth}@brd.superproxy.io:9222')

…сега вашият скрипт Playwright се изпълнява от отдалеченото инстанция на Chromium с начален контрол на сървърите на Bright Data. Той автоматично ще се погрижи за заобикалянето на CAPTCHA (и всяка друга мярка против изтриване) и вместо това ще видите правилни резултати:

[
 {
 itemName: “U.S. POLO ASSN.US Polo Women’s Button Down Shirt”,
 itemPrice: ‘₹646’
 },
 {
 itemName: “Rain & RainbowRain and Rainbow Women’s Straight Kurta”,
 itemPrice: ‘₹349’
 },
 {
 itemName: “U.S. POLO ASSN.US Polo Women’s Cotton Body Con Dress”,
 itemPrice: ‘₹1,136’
 },
 {
 itemName: “U.S. POLO ASSN.US Polo Women’s Solid T-Shirt”,
 itemPrice: ‘₹618’
 },
…
]

Заключение

CAPTCHA могат да представляват значителни предизвикателства за проектите за уеб скрапинг, особено за широкомащабните. Scraping Browser предлага цялостно решение със своята мощна инфраструктура за отключване, заобикаляйки CAPTCHA без усилие.

От емулиране на пръстови отпечатъци на устройство/браузър до управление на заглавки и бисквитки, Scraping Browser гарантира непрекъснато изтриване в мащаб, елиминирайки необходимостта от ръчна логика за заобикаляне на CAPTCHA, библиотеки на трети страни или допълнителна инфраструктура от ваша страна.

Освен това Bright Data гарантира „пълно съответствие със законите за защита на данните“, включително Общия регламент за защита на данните на ЕС (GDPR) и Калифорнийския закон за поверителността на потребителите от 2018 г. (CCPA). Това помага да се гарантира, че вашите операции за изтриване не нарушават условията за съответствие на уебсайта или законите за поверителност на данните.

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