Руководство по FlareSolverr: сбор данных и обход Cloudflare
В этой статье я покажу вам, как именно настроить и использовать FlareSolverr чтобы собирать данные, не попадая под блокировку. Давайте разберемся!
Что такое FlareSolverr?
FlareSolverr — это инструмент с открытым исходным кодом, который помогает обходить защитные проверки Cloudflare. Сайты используют Cloudflare, чтобы не дать ботам собирать данные, но FlareSolverr может обходить эти защиты, действуя как обычный браузер. Он загружает веб-страницы так же, как это сделал бы человек, проходя проверки Cloudflare.
How FlareSolverr Works
FlareSolverr — отличное решение для сбора данных с сайтов, защищенных Cloudflare.
- Работает как прокси: FlareSolverr работает как прокси-сервер, который перехватывает ваши запросы и перенаправляет их на целевой сайт.
- Имитирует реальный браузер: Он запускает headless-сеанс браузера, чтобы загрузить веб-страницу и пройти проверку Cloudflare.
- Возвращает извлечённые данные: После того как проверка пройдена, 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, откройте браузер и перейдите по адресу:
Если все настроено правильно, вы увидите сообщение о том, что 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 для скрапинга. Удачного скрапинга!

