9b395f5cc3
E2E Headed Chrome / e2e-headed (macos-15) (push) Has been cancelled
E2E Headed Chrome / e2e-headed (ubuntu-latest) (push) Has been cancelled
E2E Headed Chrome / e2e-headed (windows-latest) (push) Has been cancelled
CI / build (macos-latest) (push) Has been cancelled
CI / build (ubuntu-latest) (push) Has been cancelled
CI / build (windows-latest) (push) Has been cancelled
CI / unit-test (push) Has been cancelled
CI / bun-test (push) Has been cancelled
CI / adapter-test (push) Has been cancelled
CI / smoke-test (macos-latest) (push) Has been cancelled
CI / smoke-test (ubuntu-latest) (push) Has been cancelled
Security Audit / audit (push) Has been cancelled
Build Chrome Extension / build (push) Has been cancelled
Trigger Website Rebuild (Docs Updated) / dispatch (push) Has been cancelled
61 lines
2.2 KiB
Markdown
61 lines
2.2 KiB
Markdown
# DuckDuckGo
|
|
|
|
**Mode**: 🌐 Public · **Domains**: `html.duckduckgo.com`, `duckduckgo.com`
|
|
|
|
## Commands
|
|
|
|
| Command | Description |
|
|
|---------|-------------|
|
|
| `opencli duckduckgo search <keyword>` | Search DuckDuckGo and extract results from the page |
|
|
| `opencli duckduckgo suggest <keyword>` | Get DuckDuckGo search suggestions |
|
|
|
|
## What works today
|
|
|
|
- `duckduckgo search` uses browser mode to search `html.duckduckgo.com` and extract ranked results.
|
|
- `duckduckgo suggest` uses the public JSON API at `duckduckgo.com/ac/` — no browser needed.
|
|
- `search` supports `--region` (e.g. `jp-jp`, `us-en`, `cn-zh`) and `--time` (`d`, `w`, `m`, `y`) filters.
|
|
- `search` supports `--offset` for pagination via XHR POST (avoids page navigation issues with `form.submit()`).
|
|
|
|
## Current limitations
|
|
|
|
- `duckduckgo search` requires browser mode due to anti-bot protections on DuckDuckGo.
|
|
- The HTML version returns a maximum of 10 results per page; `--limit` must be between 1 and 10.
|
|
- Pagination uses POST-based navigation; results may have some overlap at page boundaries.
|
|
- Snippet extraction is based on the HTML version's DOM structure (`.result__snippet`).
|
|
|
|
## Usage Examples
|
|
|
|
```bash
|
|
# Basic search
|
|
opencli duckduckgo search "machine learning"
|
|
|
|
# Limit results
|
|
opencli duckduckgo search "machine learning" --limit 5
|
|
|
|
# Region-specific search
|
|
opencli duckduckgo search "machine learning" --region jp-jp
|
|
|
|
# Time filter (past week)
|
|
opencli duckduckgo search "machine learning" --time w
|
|
|
|
# Pagination (second page)
|
|
opencli duckduckgo search "machine learning" --offset 10
|
|
|
|
# JSON output
|
|
opencli duckduckgo search "machine learning" -f json
|
|
|
|
# Search suggestions
|
|
opencli duckduckgo suggest "machine" --limit 5
|
|
```
|
|
|
|
## Prerequisites
|
|
|
|
- `suggest` does not require Chrome.
|
|
- `search` requires Chrome running (Standalone mode will auto-launch) or the [Browser Bridge extension](/guide/browser-bridge).
|
|
|
|
## Notes
|
|
|
|
- DuckDuckGo uses `uddg=` URL redirects; the adapter automatically decodes them to return clean URLs.
|
|
- The `ac/` suggest API returns phonetic suggestions for CJK queries, which may not always match expected results.
|
|
- Region codes follow DuckDuckGo's format (e.g. `jp-jp`, `us-en`, `uk-en`). Default is all regions.
|