Как собирать SERP-данные DuckDuckGo: 4 эффективных подхода
Примечание: я НЕ аффилирован ни с одним провайдером; в этом руководстве я использую Bright Data, поскольку именно с ним я лучше всего знаком. Можете выбрать любого другого надежного провайдера. мой список!
Зачем собирать данные DuckDuckGo?
DuckDuckGo стал важной поисковой платформой для многих людей, которым важна приватность. Поэтому все больше аналитиков и разработчиков хотят изучать его выдачу, чтобы сравнивать позиции, отслеживать тренды, создавать наборы данных или поддерживать рабочие процессы ИИ.
Скрапинг DuckDuckGo может помочь вам:
- Анализировать эффективность ключевых слов
- Создавать наборы данных для машинного обучения
- Отслеживать изменения в поисковых трендах
- Сравнивать поисковые системы
- Тестировать SEO-стратегии
- Создавать автоматизированные инструменты для исследований
DuckDuckGo SERP Versions
DuckDuckGo предоставляет две разные версии страницы результатов поиска. Понимание этих версий помогает выбрать правильный подход к сбору данных.
1. Dynamic Version
- Стандартная версия, которую видят большинство пользователей
- Загружает контент с помощью JavaScript
- Использует функции вроде «More Results»
- Требует рендеринга JavaScript
- Формат URL:
https://duckduckgo.com/?q=
2. Static Version
- No JavaScript
- Загружает простой HTML
- Использует стандартную пагинацию с «Next»
- Формат URL:
https://html.duckduckgo.com/html/?q=
Эта версия идеально подходит для лёгких скраперов, потому что страницу можно получить быстрым HTTP-запросом.
Обзор 4 подходов
Нажмите Enter или щелкните, чтобы просмотреть изображение в полном размере

Подход 1: Создайте собственный скрапер DuckDuckGo
Этот метод дает вам полный контроль. Вы пишете собственный Python-скрипт, чтобы получать и парсить данные из статической версии SERP DuckDuckGo.
Этот подход отлично подходит для:
- Изучение того, как работает скрапинг
- Небольшие личные проекты
- Пользовательская логика извлечения
Шаг 1: Установка необходимых библиотек
pip install requests beautifulsoup4
requestsотправляет HTTP-запросыBeautifulSoupизвлекает данные из HTML
Шаг 2: Запросите статическую страницу SERP
импорт requests
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
}
url = "https://html.duckduckgo.com/html/"
параметры = {"q": "agentic rag"}
response = requests.get(url, headers=headers, params=params)
html = response.text
Шаг 3: Разбор HTML
с сайта bs4 import BeautifulSoup
soup = BeautifulSoup(html, "html.parser")
results = soup.select("#links .result")
Шаг 4: Извлечение полезной информации
Каждый результат поиска включает:
- Название
- URL
- Отображаемая ссылка
- Snippet
scraped = []
для пункт в results:
title_tag = item.select_one(".result__a")
если не title_tag:
продолжить
title = title_tag.get_text(strip=Правда)
href = title_tag.get("href", "")
link = href если href.startswith("http") else f"https:{href}"
display_tag = item.select_one(".result__url")
display = display_tag.get_text(strip=Правда) если display_tag else ""
snippet_tag = item.select_one(".result__snippet")
snippet = snippet_tag.get_text(strip=Правда) если snippet_tag else ""
scraped.append({
"title": title,
"url": ссылка,
"display_url": display,
"snippet": snippet
})
Шаг 5: Сохранение в CSV
импорт csv
если scraped:
с открыть("results.csv", "w", newline="", кодировка="utf-8") в роли f:
writer = csv.DictWriter(f, fieldnames=["title", "url", "display_url", "snippet"])
writer.writeheader()
writer.writerows(scraped)
печать(f"Saved {len(scraped)} results to results.csv")
Когда использовать этот подход
✅ Вам нужна полная кастомизация
✅ Вам нравится писать код
✅ Вам не нужен скрейпинг в больших объёмах
Когда этого лучше избегать
❌ Вы ожидаете тысячи поисковых запросов
❌ Вам нужна динамическая версия с JavaScript
❌ Вы не хотите разбираться с блокировками вручную
Подход 2: Используйте библиотеку DDGS
DDGS это библиотека Python и CLI-утилита, созданные для упрощения скрейпинга DuckDuckGo. Это самый простой бесплатный способ, если вы не хотите писать собственный парсер.
Установка
pip install -U ddgs
Извлечение результатов поиска через CLI
ddgs text -q "agentic rag" -b duckduckgo -o output.csv
Это создаёт CSV-файл с заголовками, URL и сниппетами.
Преимущества DDGS
✅ Не нужно писать код
✅ Работает через CLI или Python
✅ Отлично подходит для небольших объёмов
Cons
❌ Всё равно можно получить блокировку
❌ Ограниченная гибкость
❌ Не подходит для больших нагрузок
Использование прокси с DDGS (необязательно)
Если вы хотите снизить риск блокировок:
ddgs text -q "agentic rag" -b duckduckgo
-o output.csv
-pr USER:[email protected]:33335
Это направляет весь трафик через ротационный прокси.
Подход 3: Используйте SERP API от Bright Data
Для крупномасштабного или высоконадёжного скрапинга наиболее эффективен подход на основе API. SERP API от Bright Data берёт на себя:
- JavaScript-рендеринг
- Ротация IP-адресов
- Как инструмент с открытым исходным кодом, Scrapy имеет большое сообщество разработчиков, которые вносят вклад в его развитие.
- Блокировки и CAPTCHA
Вы просто запрашиваете URL, а API возвращает полностью отрендеренный HTML или структурированный JSON.
Почему этот подход эффективен
Можно собирать данные:
- Динамическая выдача DuckDuckGo
- Секции «Search Assist», сгенерированные ИИ
- Контент с бесконечной прокруткой или «Ещё результаты»
- Большие объёмы запросов
И всё это без работы с прокси, браузерами или блокировками.
Пример запроса на Python
импорт requests
api_key = ""
zone = ""
target = "https://duckduckgo.com/?q=agentic rag"
response = requests.post(
"https://api.brightdata.com/request",
headers={
"Авторизация": f "Носитель {api_key}",
"Content-Type": "application/json"
},
json={
"зона": зона,
"url": target,
"формат": "сырой"
}
)
если response.status_code == 200:
html = response.text
печать(html)
else:
печать(f "Ошибка: {response.status_code}")
Кому подходит этот подход
- Businesses
- SEO-агентства
- Разработчики ИИ
- Сборщики данных в больших масштабах
Pros
✅ Надёжно
✅ Большие объемы
✅ Без блокировок
✅ Работает со всеми версиями DuckDuckGo
Cons
❌ Платный сервис
Подход 4: Сбор данных DuckDuckGo с помощью MCP-сервера для ИИ-агентов
Если вы работаете с AI-ассистентами, автономными агентами или продвинутыми workflow, этот подход создан для вас. Bright Data предоставляет MCP-сервер, который открывает доступ к инструменту под названием search_engine.
Это позволяет ИИ-инструментам получать данные SERP, просто обращаясь к MCP-серверу.
Сценарии использования MCP
- AI-ассистенты для программирования
- ИИ-агенты для исследований
- Автоматизированные рабочие процессы
- Мультиагентные системы
- Инструменты с чат-интерфейсом и доступом к интернету
Как это работает
Вы устанавливаете MCP-сервер и настраиваете его с вашим API-ключом (здесь используется Bright Data, но можете выбрать любой подходящий вариант):
{
"mcpServers": {
"Bright Data Web MCP": {
"command": "npx",
"args": ["-y", "@brightdata/mcp"],
"env": {
"API_TOKEN": ""
}
}
}
}
Тогда ваша AI-среда (например, Claude Code) могут получать данные SERP из DuckDuckGo через MCP-интерфейс.
Benefits
✅ Код для скрапинга не нужен
✅ Идеально подходит для AI-интеграций
✅ Есть бесплатный тариф
✅ Та же надёжность, что и у SERP API
Какой подход выбрать?
Нажмите Enter или щелкните, чтобы просмотреть изображение в полном размере

Советы, как избежать блокировок при скрейпинге
DuckDuckGo может блокировать повторные запросы с одного и того же IP. Чтобы снизить риск:
- Используйте реалистичные строки User-Agent
- Добавляйте задержки между запросами
- Используйте прокси с ротацией
- Используйте официальные API для скрапинга
- Избегайте слишком высокой частоты запросов
Заключительные размышления
Скрейпинг DuckDuckGo может быть простым или сложным, в зависимости от выбранного метода. Если вам нужно собрать лишь небольшой объем данных, обычно достаточно собственного скрейпера или библиотеки DDGS. Но если вам нужен масштабный, надежный и полностью автоматизированный скрейпинг, решение вроде Bright Data SERP API или интеграции с MCP-сервером сэкономит время и поможет избежать проблем. Если вам нужны другие варианты, посмотрите мой список лучшие SERP API-сервисы.
У каждого подхода есть свои сильные стороны, поэтому выбирайте тот, который соответствует вашему уровню подготовки и требованиям проекта. При правильном использовании DuckDuckGo может стать ценным источником поисковых данных — для исследований, приложений или анализа.

