Uma Api simples para baixar imagens do DuckDuckGo.
Essa API foi originalmente criada por Deepan Prabhu Babu. A qual eu fiz um porte para python 3.11 e adicionei novas funcionalidades como:
- apenas pesquisar as imagens e retornar a lista de urls.
- baixar as imagens em multi-threading.
git clone https://github.com/samuel-cavalcanti/DuckDuckGo-Image-Search-API.git
cd DuckDuckGo-Image-Search-API
python setup.py install # python3.11
pip install . # Dependendo da situação vai precisar de sudo (mas por favor evite e aprenda sobre python venv)
from duckduckgo_images_api.duckduckgo_api import DuckDuckGoApi
def test_api():
duck_duck_go = DuckDuckGoApi(debug=False)
images = duck_duck_go.search("arroz", max_results=100)
duck_duck_go.print_json(images[0])
duck_duck_go.search_and_download("casa", max_results=50, max_workers=5)
if __name__ == '__main__':
test_api()
link para download do código test_api.py
foi criado um suite de teste de integração, para executa-lo:
python -m unittest discover -v -s tests
Lembrando que necessita de acesso de internet para baixar e procurar imagens no duckduckgo.
-
parâmetro keywords : é a palavra ou as palavras chave da busca no duckduckgo
-
parâmetro max_workers : é o número de Threads utilizadas para o download das imagens
-
parâmetro output_dir : é a pasta onde será salva as imagens. Por padrão é criada uma pasta chamada downloads
-
parâmetro max_results: limita o número de imagens a serem pesquisadas.
-
Informações importantes: testes iniciais mostraram que o limite máximo de urls fica por volta dos 950 urls de imagens por pesquisa.