Skip to main content

DuckPy

A simple Python module for searching on DuckDuckGo.

PyPI GitHub

Installation

Duckpy can be installed using pip with this command

pip install -U duckpy

Alternatively, you can install the most recent version from git

pip install -U git+https://github.com/AmanoTeam/duckpy

If you are using Debian or Ubuntu, you can install with this command (Currently only in Debian Unstable and Ubuntu 20.10+)

sudo apt install python3-duckpy

Usage

from duckpy import Client

client = Client()

results = client.search("Python Wikipedia")

# Prints first result title
print(results[0].title)

# Prints first result URL
print(results[0].url)

# Prints first result description
print(results[0].description)

We also provide an asynchronous version inside the AsyncClient class

import asyncio
from duckpy import AsyncClient

client = AsyncClient()

async def get_results():
  results = await client.search("Python Wikipedia")

  # Prints first result title
  print(results[0].title)

  # Prints first result URL
  print(results[0].url)

  # Prints first result description
  print(results[0].description)


loop = asyncio.get_event_loop()
loop.run_until_complete(get_results())

The result

Python (programming language) - Wikipedia
https://en.wikipedia.org/wiki/Python_(programming_language)
Python is an interpreted, high-level, general-purpose programming language. Created by Guido van Rossum and first released in 1991...

Advanced usage

You can also set up proxies or set up custom User-Agent strings depending on your needs.

Setting up proxies

DuckDuckGo may temporarily block your request IP or return empty results, especially if you are using the library for scraping, bots and other stuff that generate many requests. This is not a duckpy issue and can be prevented using proxies.

You can pass a list with proxies in the Client object, then duckpy will use these proxies to make requests:

import duckpy

client = duckpy.Client(proxies=['http://123.45.67.89:80', 'https://98.76.54.32:443'])

If you pass more than one proxy, they will be randomly chosen every time you use the .search() method.

Setting up custom User-Agents

import duckpy

user_agents = [
  "Mozilla/5.0 (X11; Linux x86_64; rv:79.0) Gecko/20100101 Firefox/79.0",
  "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36"
]

client = duckpy.Client(default_user_agents=user_agents)

Again, if you pass more than one User-Agent, they will be randomly chosen every time you use the .search() method.

Disclaimer

We are not affiliated, associated, authorized, endorsed by, or in any way officially connected with DuckDuckGo, or any of its subsidiaries or its affiliates. The official DuckDuckGo website can be found at https://duckduckgo.com.

Metadata

Release files for duckpy 3.2.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 duckpy 3.2.0
File Size Uploaded
duckpy-3.2.0.tar.gz 4.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for duckpy 3.2.0
File Interpreter ABI Platform
duckpy-3.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 9.5 kB

Release files / duckpy-3.2.0.tar.gz

Download URL duckpy-3.2.0.tar.gz
Size 4.5 kB
Tags Source
SHA-256 checksum
How to use checksums
7b3ac88521bd71e610a10d2d2b7c9b39bc7669348fc9752c8d0b3ae1ea7dc000
BLAKE2b-256 checksum
How to use checksums
92d80ed92b9f838584ce6f36c205f72eaa449a8141234d3441ea75e93bb52cd9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.6

Release files / duckpy-3.2.0-py3-none-any.whl

Download URL duckpy-3.2.0-py3-none-any.whl
Size 5.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
63ec931083dce9bece2ef8de161bfbb323d52a73351d80aa383793e89275628b
BLAKE2b-256 checksum
How to use checksums
cd8002f8b128ec3c0d196f033d78c06e42c30d25359c3112ddb4bd1435d1806d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.6

Release history Release notifications | RSS feed

This release

3.2.0 This release

2 release files

3.1.0

2 release files

3.0.0

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.0

1 release file

1.2.3

1 release file

1.2.2

1 release file

1.2.1

1 release file

1.2.0

1 release file

1.0.1

1 release file

1.0.0

1 release file

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