Skip to main content

crawlora-duckduckgo

Python client for Crawlora's hosted DuckDuckGo API. It calls Crawlora's service at Crawlora; it does not run a browser or scrape DuckDuckGo locally. A Crawlora account and CRAWLORA_API_KEY are required, and API use is billed under your Crawlora account. Crawlora is independent from and not endorsed by DuckDuckGo or its owners.

Install

python -m pip install crawlora-duckduckgo

Get an API key

Create an account at crawlora.net, then open the Crawlora console for API-key setup. Set your key in the shell before running the client:

export CRAWLORA_API_KEY="your-crawlora-api-key"

Use

Save this example as example.py, then run python example.py after installing the package and setting your API key.

import os

from crawlora_duckduckgo import DuckDuckGoClient

api_key = os.environ.get("CRAWLORA_API_KEY")
if not api_key:
    raise RuntimeError("Set CRAWLORA_API_KEY before running this example.")

with DuckDuckGoClient(api_key=api_key) as client:
    result_1 = client.search(q='open source web crawler')
    print(result_1)
    result_2 = client.news(q='technology')
    print(result_2)

The package also exports Client as an alias for DuckDuckGoClient. Operation methods are available directly in snake_case and through the duckduckgo group. The async package client is AsyncDuckDuckGoClient; see the online endpoint and parameter reference and runnable example.

Async usage

The package also exports AsyncClient for asynchronous requests:

import asyncio
import os

from crawlora_duckduckgo import AsyncClient

async def main():
    api_key = os.environ.get("CRAWLORA_API_KEY")
    if not api_key:
        raise RuntimeError("Set CRAWLORA_API_KEY before running this example.")
    async with AsyncClient(api_key=api_key) as client:
        result_1 = await client.search(q='open source web crawler')
        print(result_1)

asyncio.run(main())

See the runnable example for a complete usage example.

Configuration

Pass your key through api_key or read CRAWLORA_API_KEY from the environment. Keep credentials out of source control and logs. Requests go to Crawlora's hosted API.

Metadata

Release files for crawlora-duckduckgo 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for crawlora-duckduckgo 0.1.0
File Size Uploaded
crawlora_duckduckgo-0.1.0.tar.gz 21.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for crawlora-duckduckgo 0.1.0
File Interpreter ABI Platform
crawlora_duckduckgo-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 44.8 kB

Release files / crawlora_duckduckgo-0.1.0.tar.gz

Download URL crawlora_duckduckgo-0.1.0.tar.gz
Size 21.6 kB
Tags Source
SHA-256 checksum
How to use checksums
edf82a7d4f885b8e2edd0c835f987094060cb11b961958905fe3f96bed827a4f
BLAKE2b-256 checksum
How to use checksums
e7c8778c9bd70e5ad827bc337da1c25a767c4276728be08f3e3031c9a19153fc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / crawlora_duckduckgo-0.1.0-py3-none-any.whl

Download URL crawlora_duckduckgo-0.1.0-py3-none-any.whl
Size 23.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ca68eb0d92d74d367fa5f3a130324a73f939d1de6c8fb2338ecf28ce1f53b35e
BLAKE2b-256 checksum
How to use checksums
66620ae0e064b2146ed0bd0d55cb7c95be41958f92a170a1573e17961ad669ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release history Release notifications | RSS feed

0.1.1

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page