Руководство по FlareSolverr

Руководство по FlareSolverr: сбор данных и обход Cloudflare

В этой статье я покажу вам, как именно настроить и использовать FlareSolverr чтобы собирать данные, не попадая под блокировку. Давайте разберемся!

Что такое FlareSolverr?

FlareSolverr — это инструмент с открытым исходным кодом, который помогает обходить защитные проверки Cloudflare. Сайты используют Cloudflare, чтобы не дать ботам собирать данные, но FlareSolverr может обходить эти защиты, действуя как обычный браузер. Он загружает веб-страницы так же, как это сделал бы человек, проходя проверки Cloudflare.

How FlareSolverr Works

FlareSolverr — отличное решение для сбора данных с сайтов, защищенных Cloudflare.

  1. Работает как прокси: FlareSolverr работает как прокси-сервер, который перехватывает ваши запросы и перенаправляет их на целевой сайт.
  2. Имитирует реальный браузер: Он запускает headless-сеанс браузера, чтобы загрузить веб-страницу и пройти проверку Cloudflare.
  3. Возвращает извлечённые данные: После того как проверка пройдена, FlareSolverr возвращает содержимое страницы, чтобы вы могли извлечь нужные данные.

Как установить и настроить FlareSolverr

Рекомендуемый способ установки FlareSolverr — через Docker. Docker помогает упаковать все зависимости в один контейнер, что значительно упрощает установку и использование.

Installing Docker

Если вы еще не установили Docker, скачайте и установите его с официального сайта: https://www.docker.com/get-started

После установки Docker можно переходить к настройке FlareSolverr.

Скачивание и запуск FlareSolverr

Выполните следующую команду в терминале, чтобы загрузить последний образ FlareSolverr:

docker pull 21hsmw/flaresolverr:nodriver

После загрузки образа создайте и запустите контейнер, выполнив:

docker run -d - name flaresolverr -p 8191:8191 21hsmw/flaresolverr:nodriver

Эта команда выполняет следующее:

  • -d запускает контейнер в фоновом режиме (detached mode).
  • — name flaresolverr называет контейнер.
  • -p 8191:8191 пробрасывает порт для FlareSolverr.

Verifying FlareSolverr Installation

Чтобы проверить, запущен ли FlareSolverr, откройте браузер и перейдите по адресу:

http://localhost:8191

Если все настроено правильно, вы увидите сообщение о том, что FlareSolverr запущен.

Сбор данных с помощью FlareSolverr

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

Вот как собрать данные с сайта, защищенного Cloudflare, с помощью Python:

Шаг 1: Установка необходимых библиотек

Сначала установите библиотеки requests и BeautifulSoup, если вы еще этого не сделали:

pip install requests bs4

Шаг 2: Напишите скрипт для сбора данных

Создайте новый файл Python и добавьте следующий скрипт:

импорт requests
# Define FlareSolverr URL
url = "http://localhost:8191/v1"
заголовки = {"Content-Type": "application/json"}
# Define request parameters
data = {
"cmd": "request.get",
"url": "https://www.example.com",
"maxTimeout": 60000
}
# Send request to FlareSolverr
response = requests.post(url, headers=headers, json=data)
# Print response details
печать("Статус:", response.json().get('status', {}))
печать("Status Code:", response.status_code)
печать("Сообщение FlareSolverr:", response.json().get('message', {}))
# Extract page content
page_content = response.json().get('solution', {}).get('response', '')
печать(page_content)

Этот скрипт:

  • Отправляет запрос в FlareSolverr, чтобы обойти Cloudflare.
  • Ожидает, пока проверка будет пройдена.
  • Возвращает HTML-контент страницы.

Разбор собранных данных

После того как у вас есть содержимое страницы, можно извлечь конкретные данные с помощью BeautifulSoup.

Измените свой скрипт, чтобы извлекать информацию:

с сайта bs4 импорт BeautifulSoup
# Parse HTML content
soup = BeautifulSoup(page_content, 'html.parser')
# Extract specific data
title = soup.find('title').text
печать("Заголовок страницы:", title)

Это извлечёт и отобразит заголовок страницы со скрапленной веб-страницы.

Использование прокси с FlareSolverr

Использование прокси помогает избежать блокировок по IP и географических ограничений.

Добавление прокси в FlareSolverr

Вы можете использовать прокси, изменив тело запроса:

импорт random
proxy_list = [
'185.150.85.170',
'45.154.194.148',
'104.244.83.140'
]
proxy_ip = random.choice(proxy_list)
proxies = {
'http': f'http://{proxy_ip}',
'https': f'https://{proxy_ip}',
}
data = {
"cmd": "request.get",
"url": "https://www.example.com",
"maxTimeout": 60000
}
response = requests.post(url, headers=headers, json=data, proxies=proxies)
печать("Status Code:", response.status_code)

Этот скрипт выбирает случайный прокси из списка и использует его для запроса.

Управление сессиями и cookie

Cloudflare использует cookies для отслеживания пользовательских сессий. FlareSolverr может сохранять и повторно использовать cookies, повышая эффективность скрапинга.

Создание сессии

Чтобы создать сессию:

data = {
"cmd": "sessions.create"
}
response = requests.post(url, headers=headers, json=data)
session_id = response.json().получить('session', {})
print("Session ID:", session_id)

Использование сессии

После того как у вас появится ID сессии, используйте его для последующих запросов:

data = {
"cmd": "request.get",
"url": "https://www.example.com",
"maxTimeout": 60000,
"session": session_id
}
response = requests.post(url, headers=headers, json=data)
print(response.json())

Поиск и устранение неисправностей

Вот распространенные проблемы FlareSolverr и способы их устранения:

FlareSolverr не запущен

Проверьте, запущен ли Docker-контейнер:

docker ps

Перезапустите контейнер:

docker restart flaresolverr

Запрос не проходит из-за проверки CAPTCHA

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

Cookies не работают

Убедитесь, что вы используете сбор данных на основе сессий.

FlareSolverr Alternatives

Если FlareSolverr не подходит для вашего сценария, рассмотрите следующие альтернативы:

  • Playwright и Puppeteer — Автоматизируйте взаимодействие с браузером. Подробнее о веб-скрапинге с Драматург и Кукловод.
  • Web Scraper APIs — Используйте API для веб-скрапинга чтобы полностью автоматизировать всю инфраструктуру сбора данных.
  • Scraping Browsers — Такие инструменты, как ScrapingBee, предоставляют встроенный обход Cloudflare.

Заключение

FlareSolverr — мощный инструмент для обхода Cloudflare-защиты и скрапинга защищенных сайтов. Используя Docker, прокси и управление сессиями, вы можете эффективно собирать данные, не попадая под блокировку. Если вам нужно более надежное решение для скрапинга, рассмотрите альтернативные инструменты, такие как Playwright, Puppeteer или API для скрапинга. Удачного скрапинга!

Похожие записи