メタ検索エンジン「SearXNG」のAPIをPythonから利用する

メタ検索エンジン「SearXNG」のAPIを利用したときのログ

事前準備

SearXNGは端末にインストールではなく、Windows上のWSLでDockerを利用する。Dockerインストールの手順は、以下が参考になる。

meganedesu.com

SearXNGを起動する

以下の記事通りに実行すればよい。

zenn.dev

ブラウザからSearXNGを利用して検索をしてみる

上記記事の通りコンテナを起動した場合、ホストの8080ポートにアクセスすればよい。

検索窓に検索したいキーワードを入れて検索を実行すると、以下のように結果が得られる。

使用する検索エンジンを変更する場合は、設定から変更が可能。

PythonからAPI経由でSearXNGで検索を実行

Python(Jupyter)の実行環境は、以下を参考にコンテナで起動済み。

meganedesu.com

セルに以下を入力し、実行すればよい。qというパラメータには、検索したいキーワードを入れて、enginesというパラメータには、利用する検索エンジンをカンマ区切りで入力する。

import requests

# URL
url = 'http://host.docker.internal:8080/search'

# パラメータ
params = {
    'q': 'コンビニのイートインからこんにちは',
    'format': 'json',
    'language': 'ja',
    'engines': 'presearch'

}

# GETリクエストを送信
response = requests.get(url, params=params)

# レスポンスをJSON形式で取得
data = response.json()

# 結果を表示
print(data)

上記コードでは、検索エンジンにpresearchというものを指定した実行している。

結果はjsonで返ってきた。

別のフォーマット(csv,hml)も指定可能らしい。以下の公式ページのformatという項目を参照すべし。

docs.searxng.org