Веб-скрепинг с Botright и Python в 2025 году

Nikolai Smirnov
Software Development Lead
14-Nov-2024

Вероятно, вы задаетесь вопросом, как решать капчи с помощью BotRight, как использовать его для создания простого парсера или, что еще лучше, продвинутого парсера!
Ну, тогда это ваш учебник!
Введение в Botright
Введение в BotRight
BotRight — это продвинутая библиотека Python для веб-автоматизации, разработанная специально для решения растущей сложности систем обнаружения ботов на различных веб-сайтах. В отличие от базовых инструментов автоматизации, BotRight выходит за рамки простых взаимодействий, предоставляя тонкие элементы управления, которые делают автоматизированный просмотр очень похожим на действия человека. Такой акцент на симуляцию человеческого поведения имеет решающее значение для доступа к веб-сайтам, которые обычно блокируют или ограничивают ботов.
Построенный на базе Selenium WebDriver, BotRight предлагает высокоуровневый API, который абстрагирует сложные взаимодействия с браузером в простые команды, позволяя как новичкам, так и опытным пользователям разрабатывать сложные парсеры и сценарии автоматизации без необходимости управлять низкоуровневыми командами браузера. Это делает его отличным выбором для проектов, начиная от простого сбора данных и заканчивая сложными многоэтапными веб-задачами, которые требуют устойчивости к алгоритмам обнаружения ботов.
Почему стоит выбрать BotRight?
BotRight предоставляет ряд функций, которые выделяют его в сфере автоматизации:
-
Подобные человеческим взаимодействия: Конструкция BotRight сфокусирована на имитации реальных действий пользователя, таких как плавные движения мыши, естественные шаблоны набора текста и временные задержки. Такое поведение снижает риск обнаружения и обеспечивает более надежный доступ к контенту, который обычно ограничен действительными пользователями.
-
Сохранение состояния браузера: Поддерживая профили браузера, BotRight позволяет вам сохранять состояние сеанса во время нескольких запусков автоматизации. Эта функция особенно полезна для задач, которые требуют сохранения входа в систему или где необходимо сохранять определенные файлы cookie и состояния кэша.
-
Простота использования: Несмотря на свои продвинутые возможности, BotRight отличается исключительной простотой в использовании. Его API структурирован таким образом, чтобы упростить сложные задачи автоматизации, устраняя большую часть технических накладных расходов, которые обычно возникают при настройке Selenium. Новички могут быстро начать работу, а опытные пользователи могут использовать гибкость BotRight для создания высоконастраиваемых решений.
-
Масштабируемость для сложных рабочих процессов: BotRight хорошо адаптируется к более сложным задачам, включая работу с сайтами, использующими AJAX, управление извлечением данных с постраничной навигацией, решение CAPTCHA и многое другое. В сочетании с решателями CAPTCHA, такими как CapSolver, BotRight может обрабатывать рабочие процессы, которые требуют обхода CAPTCHA, позволяя вам автоматизировать даже сильно защищенные веб-сайты.
-
Интегрированные расширения и плагины: BotRight поддерживает включение различных расширений и плагинов для расширения возможностей автоматизации. Например, использование таких инструментов, как CapSolver в BotRight, помогает управлять проблемами с CAPTCHA, открывая более широкий спектр веб-сайтов для парсинга или автоматизации.
Настройка Botright
Прежде чем начать, убедитесь, что у вас установлен Python 3.7 или выше. Выполните следующие действия, чтобы настроить Botright:
-
Установите Botright:
bashpip install botright -
Установите менеджер WebDriver:
Botright полагается на пакет
webdriver_managerдля управления драйверами браузеров.bashpip install webdriver-manager -
Проверьте установку:
Создайте новый файл Python и импортируйте Botright, чтобы убедиться, что он установлен правильно.
pythonfrom botright import BotrightЕсли ошибок не возникло, Botright установлен правильно.
Создание базовых парсеров
Давайте создадим простые скрипты для парсинга данных с quotes.toscrape.com с помощью Botright.
Парсинг цитат
Скрипт: scrape_quotes.py
python
from botright import Botright
def scrape_quotes():
with Botright() as bot:
bot.get("https://quotes.toscrape.com/")
quotes = bot.find_elements_by_css_selector("div.quote")
for quote in quotes:
text = quote.find_element_by_css_selector("span.text").text
author = quote.find_element_by_css_selector("small.author").text
print(f"\"{text}\" - {author}")
if __name__ == "__main__":
scrape_quotes()
Запустите скрипт:
bash
python scrape_quotes.py
Вывод:
“The world as we have created it is a process of our thinking. It cannot be changed without changing our thinking.” - Albert Einstein
...
Объяснение:
- Мы используем
Botrightв качестве контекстного менеджера, чтобы обеспечить правильную настройку и завершение работы. - Мы переходим на веб-сайт с помощью
bot.get(). - Мы находим все элементы цитат и извлекаем текст и автора.
Обработка постраничной навигации
Скрипт: scrape_quotes_pagination.py
python
from botright import Botright
def scrape_all_quotes():
with Botright() as bot:
bot.get("https://quotes.toscrape.com/")
while True:
quotes = bot.find_elements_by_css_selector("div.quote")
for quote in quotes:
text = quote.find_element_by_css_selector("span.text").text
author = quote.find_element_by_css_selector("small.author").text
print(f"\"{text}\" - {author}")
# Проверяем наличие следующей страницы
next_button = bot.find_elements_by_css_selector('li.next > a')
if next_button:
next_button[0].click()
else:
break
if __name__ == "__main__":
scrape_all_quotes()
Объяснение:
- Мы перебираем страницы, проверяя, доступна ли кнопка «Далее».
- Мы используем
find_elements_by_css_selectorдля поиска элементов. - Мы нажимаем кнопку «Далее», чтобы перейти на следующую страницу.
Парсинг динамического контента
Скрипт: scrape_dynamic_content.py
python
from botright import Botright
import time
def scrape_tags():
with Botright() as bot:
bot.get("https://quotes.toscrape.com/")
# Нажимаем на ссылку «Top Ten tags», чтобы загрузить теги динамически
bot.click('a[href="/tag/"]')
# Ждем загрузки динамического контента
time.sleep(2)
tags = bot.find_elements_by_css_selector("span.tag-item > a")
for tag in tags:
tag_name = tag.text
print(f"Tag: {tag_name}")
if __name__ == "__main__":
scrape_tags()
Объяснение:
- Мы переходим на страницу тегов, нажимая на ссылку.
- Мы ждем загрузки динамического контента с помощью
time.sleep(). - Мы извлекаем и печатаем теги.
Отправка форм и вход в систему
Скрипт: scrape_with_login.py
python
from botright import Botright
def login_and_scrape():
with Botright() as bot:
bot.get("https://quotes.toscrape.com/login")
# Заполняем форму входа в систему
bot.type('input#username', 'testuser')
bot.type('input#password', 'testpass')
bot.click("input[type='submit']")
# Проверяем вход в систему, проверяя наличие ссылки на выход
if bot.find_elements_by_css_selector('a[href="/logout"]'):
print("Logged in successfully!")
# Теперь парсим цитаты
bot.get("https://quotes.toscrape.com/")
quotes = bot.find_elements_by_css_selector("div.quote")
for quote in quotes:
text = quote.find_element_by_css_selector("span.text").text
author = quote.find_element_by_css_selector("small.author").text
print(f"\"{text}\" - {author}")
else:
print("Login failed.")
if __name__ == "__main__":
login_and_scrape()
Объяснение:
- Мы переходим на страницу входа в систему и заполняем учетные данные.
- Мы проверяем вход в систему, проверяя наличие ссылки на выход.
- Затем мы продолжаем парсить контент, доступный для авторизованных пользователей.
Примечание: Поскольку quotes.toscrape.com допускает любое имя пользователя и пароль для демонстрации, мы можем использовать тестовые учетные данные.
Интеграция CapSolver в Botright
Хотя quotes.toscrape.com не имеет CAPTCHA, многие реальные веб-сайты имеют. Чтобы подготовиться к таким случаям, мы продемонстрируем, как интегрировать CapSolver в наш скрипт Botright с помощью расширения браузера CapSolver.
Загрузка расширения CapSolver
-
Загрузите расширение:
- Перейдите на страницу CapSolver GitHub Releases.
- Загрузите последнюю версию, например,
capsolver-chrome-extension-v0.2.3.zip. - Разархивируйте его в каталог в корне вашего проекта, например,
./capsolver_extension.
Настройка расширения CapSolver
-
Найдите
config.json:- Путь:
capsolver_extension/assets/config.json
- Путь:
-
Отредактируйте
config.json:json{ "apiKey": "YOUR_CAPSOLVER_API_KEY", "enabledForcaptcha": true, "captchaMode": "token", "enabledForRecaptchaV2": true, "reCaptchaV2Mode": "token", "solveInvisibleRecaptcha": true, "verbose": false }- Замените
"YOUR_CAPSOLVER_API_KEY"на ваш фактический ключ API CapSolver. - Установите
enabledForcaptchaи/илиenabledForRecaptchaV2вtrueв зависимости от типов CAPTCHA, которые вы ожидаете. - Установите режим в
"token"для автоматического решения.
- Замените
Загрузка расширения CapSolver в Botright
Чтобы использовать расширение CapSolver в Botright, нам нужно настроить браузер так, чтобы он загружал расширение при запуске.
Примечание: Botright позволяет вам настраивать параметры браузера, включая добавление расширений.
Измененный скрипт:
python
from botright import Botright
from selenium.webdriver.chrome.options import Options
import os
def create_bot_with_capsolver():
# Путь к папке с расширением CapSolver
extension_path = os.path.abspath('capsolver_extension')
# Настройка параметров Chrome
options = Options()
options.add_argument(f"--load-extension={extension_path}")
options.add_argument("--disable-gpu")
options.add_argument("--no-sandbox")
# Инициализация Botright с настроенными параметрами
bot = Botright(options=options)
return bot
Объяснение:
- Импорт
Options:- Из
selenium.webdriver.chrome.options, чтобы задать параметры Chrome.
- Из
- Настройка параметров Chrome:
- Используйте
options.add_argument(), чтобы добавить расширение CapSolver.
- Используйте
- Инициализация Botright с параметрами:
- Передайте
optionsвBotrightпри создании экземпляра.
- Передайте
Пример скрипта с интеграцией CapSolver
Мы продемонстрируем интеграцию, перейдя на сайт с reCAPTCHA, например, демо reCAPTCHA Google.
Скрипт: scrape_with_capsolver_extension.py
python
from botright import Botright
from selenium.webdriver.chrome.options import Options
import os
import time
def solve_captcha_and_scrape():
# Путь к папке с расширением CapSolver
extension_path = os.path.abspath('capsolver_extension')
# Настройка параметров Chrome
options = Options()
options.add_argument(f"--load-extension={extension_path}")
options.add_argument("--disable-gpu")
options.add_argument("--no-sandbox")
# Инициализация Botright с настроенными параметрами
with Botright(options=options) as bot:
bot.get("https://www.google.com/recaptcha/api2/demo")
# Ждем, пока CapSolver решит CAPTCHA
print("Waiting for CAPTCHA to be solved...")
# Отрегулируйте время ожидания в соответствии со средним временем решения
time.sleep(15)
# Проверяем, решена ли CAPTCHA, проверив содержимое страницы
if "Verification Success" in bot.page_source:
print("CAPTCHA solved successfully!")
else:
print("CAPTCHA not solved yet or failed.")
if __name__ == "__main__":
solve_captcha_and_scrape()
Объяснение:
- Настройка параметров Chrome:
- Включите расширение CapSolver в сеанс браузера.
- Инициализация Botright с параметрами:
- Передайте
optionsпри создании экземпляраBotright.
- Передайте
- Переход на целевой сайт:
- Используйте
bot.get(), чтобы перейти на сайт с reCAPTCHA.
- Используйте
- Ожидание решения CAPTCHA:
- Расширение CapSolver автоматически решит CAPTCHA.
- Используйте
time.sleep(), чтобы подождать; отрегулируйте время по мере необходимости.
- Проверка решения CAPTCHA:
- Проверьте содержимое страницы, чтобы подтвердить, была ли решена CAPTCHA.
Важные примечания:
- Путь к расширению:
- Убедитесь, что
extension_pathправильно указывает на вашу папку с расширением CapSolver.
- Убедитесь, что
- Время ожидания:
- Время решения может варьироваться; отрегулируйте
time.sleep()соответствующим образом.
- Время решения может варьироваться; отрегулируйте
- Управление драйвером:
- Botright управляет WebDriver внутренне; передача
optionsнастраивает драйвер.
- Botright управляет WebDriver внутренне; передача
- Соответствие:
- Убедитесь, что вы соблюдаете условия обслуживания веб-сайта, который вы парсите.
Запуск скрипта:
bash
python scrape_with_capsolver_extension.py
Бонусный код
Заберите ваш бонусный код для лучших решений капчи на CapSolver: scrape. После его активации вы получите дополнительный 5% бонус после каждой пополнения баланса, неограниченное количество раз.

Заключение
Интегрируя CapSolver с Botright с помощью расширения браузера CapSolver, вы можете автоматизировать решение CAPTCHA в своих проектах по парсингу веб-страниц. Это обеспечивает бесперебойное извлечение данных, даже с сайтов, защищенных CAPTCHA.
Основные выводы:
- Botright упрощает веб-автоматизацию с помощью подобных человеческим взаимодействий.
- Расширение браузера CapSolver может быть интегрировано в скрипты Botright.
- Правильная настройка расширения и параметров браузера имеет решающее значение.
Дисклеймер о соблюдении: Информация, представленная в этом блоге, предназначена только для справочных целей. CapSolver обязуется соблюдать все применимые законы и нормы. Использование сети CapSolver для незаконной, мошеннической или злоупотребляющей деятельности строго запрещено и будет расследовано. Наши решения для распознавания капчи улучшают пользовательский опыт, обеспечивая 100% соблюдение при помощи в решении трудностей с капчей в процессе сбора общедоступных данных. Мы призываем к ответственному использованию наших услуг. Для получения дополнительной информации, пожалуйста, посетите наши Условия обслуживания и Политику конфиденциальности.
Ещеe

Лучшие User Agent'ы для веб-скрапинга и как их использовать
Руководство по лучшим user agent'ам для веб-скрапинга и их эффективному использованию для предотвращения обнаружения. Изучите важность user agent'ов, их типов и способы их реализации для бесшовного и незаметного веб-скрапинга.

Nikolai Smirnov
07-Mar-2025

Как обойти защиту Cloudflare JS при веб-скрапинге и автоматизации
Научитесь решать JavaScript-вызов Cloudflare для бесшовного веб-скрапинга и автоматизации. Откройте для себя эффективные стратегии, включая использование headless-браузеров, ротацию прокси и использование расширенных возможностей решения CAPTCHA от CapSolver.

Nikolai Smirnov
05-Mar-2025

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

Nikolai Smirnov
28-Feb-2025

Почему меня постоянно просят подтвердить, что я не робот?
Узнайте, почему Google запрашивает подтверждение того, что вы не робот, и изучите решения, такие как использование API CapSolver для эффективного решения задач CAPTCHA.

Nikolai Smirnov
27-Feb-2025

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

Ethan Collins
20-Feb-2025

Почему сайты считают меня ботом? И как это исправить
Поймите, почему веб-сайты помечают вас как бота, и как избежать обнаружения. Ключевыми триггерами являются задачи CAPTCHA, подозрительные IP-адреса и необычное поведение браузера.

Nikolai Smirnov
20-Feb-2025

