Поиск в DuckDuckGo с помощью Python

В данной статье посмотрим как выполнить поисковый запрос в DuckDuckGo и получить результаты, парся HTML-страницу. Ниже приведён полный код с пояснениями:
import requests
from bs4 import BeautifulSoup
import json
def search_duckduckgo(query, max_results=10):
# Заголовки, имитирующие обычный браузер
headers = {
"User-Agent": "Mozilla/5.0"
}
# Параметры поиска: q — запрос, kl — язык/регион (США, английский)
params = {
"q": query,
"kl": "us-en"
}
# URL HTML-версии поисковой страницы DuckDuckGo
url = "https://html.duckduckgo.com/html/"
# Отправляем POST-запрос к серверу
response = requests.post(url, data=params, headers=headers)
if response.status_code != 200:
raise Exception("Не удалось получить результаты поиска")
# Парсим HTML-ответ с помощью BeautifulSoup
soup = BeautifulSoup(response.text, "html.parser")
results = []
# Извлекаем ссылки на результаты (до max_results штук)
for result in soup.find_all("a", class_="result__a", limit=max_results):
title = result.get_text() # Заголовок результата
href = result['href'] # Ссылка на результат
results.append({
"title": title,
"link": href
})
# Возвращаем результаты в формате JSON (с отступами и поддержкой Unicode)
return json.dumps(results, indent=4, ensure_ascii=False)
# Пример использования функции
if __name__ == "__main__":
query = "создание сайта в 2025" # Поисковый запрос
results_json = search_duckduckgo(query)
print(results_json) # Выводим результаты в консоль
-
-
Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.