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

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

Поиск в 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)                # Выводим результаты в консоль


Источник

НЕТ КОММЕНТАРИЕВ

Оставить комментарий