Skip to main content

Python API for various search engines

Project description

seekit

seekit wraps multiple search providers behind a common SerpItem model and can search live using curl_cffi request templates derived from captured HAR files.

Supported providers:

  • Baidu
  • Bilibili
  • Bing
  • Brave
  • Douyin
  • DuckDuckGo
  • Google
  • Reddit
  • So.com
  • Sogou
  • Threads
  • TikTok
  • Toutiao
  • Weibo
  • Yandex
  • YouTube
  • Zhihu

Install

uv add seekit

For the CLI:

uv tool install seekit

Usage

Search live:

import seekit

results = seekit.search("latest OpenAI reasoning model", provider="google")
for item in results[:3]:
    print(item.provider, item.title, item.url)

CLI:

seekit tiktok OpenAI
seekit google latest OpenAI reasoning model --limit 5

Each parsed item uses the shared pydantic model:

class SerpItem(BaseModel):
    provider: str
    title: str | None
    excerpt: str | None
    url: str | None
    author: str | None
    cover_url: str | None

Fixture parsing is still available for tests and parser debugging:

from pathlib import Path

results = seekit.parse_har("google", Path("data/pages/google.har"))

Development

uv run pytest

Tests read the HAR fixtures under data/pages, verify the normalized item shape, and validate that live request templates substitute the search keyword correctly.

Release

make publish-testpypi
make publish-pypi

These targets build with uv build and publish with uvx uv-publish.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

seekit-0.0.1.tar.gz (13.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

seekit-0.0.1-py3-none-any.whl (18.8 kB view details)

Uploaded Python 3

File details

Details for the file seekit-0.0.1.tar.gz.

File metadata

  • Download URL: seekit-0.0.1.tar.gz
  • Upload date:
  • Size: 13.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for seekit-0.0.1.tar.gz
Algorithm Hash digest
SHA256 856c4622fc2b7ea7690cbd63aaee08897e189c4c27bf309a299f81b03060728f
MD5 df0c7057f4455b52c4ce013028065fdc
BLAKE2b-256 a5a8f34f76bed6989f3eb6a5cfeda554aebc6036c36871fd0e573362e7a80690

See more details on using hashes here.

File details

Details for the file seekit-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: seekit-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 18.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for seekit-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fb6d6e5e4efd5aceb521d0919c11b266cebfbbaf421acd3ead8b736c97943fef
MD5 13ac724d00103863518c1d345f4dca3e
BLAKE2b-256 11a1049044e008aa4e82bdb9d6dd01cfed8c64c5da18d46a97cf504fe91699dc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page