Todos los scrapers

Buscadores

DuckDuckGo Scraper

duckduckgo.com

100% Tasa de éxito
3.1s Respuesta media
Bot detection + rate limiting Protección
1040 llamadas Medido sobre

DuckDuckGo construye su página de resultados con JavaScript y pone desafíos a los clientes que no son un navegador real, así que hacer scraping por tu cuenta implica ejecutar uno. Un endpoint de plugin dedicado recibe una palabra clave y devuelve los resultados ya analizados: resultados orgánicos con posición, título, URL, URL visible, dominio y descripción, los anuncios de la primera página en una lista superior y otra inferior, y búsquedas relacionadas. La primera página se renderiza en un navegador real a través de un exit en el país que elijas, así que sus anuncios se cargan; las páginas siguientes añaden resultados orgánicos. La respuesta tiene la misma estructura que nuestro endpoint /serpApi de Google, de modo que un solo pipeline gestiona ambos buscadores.

Qué puedes extraer

  • Resultados orgánicos con posición, título, URL, URL visible, dominio y descripción
  • Anuncios superiores e inferiores de la primera página de resultados, con el dominio del anunciante
  • Búsquedas relacionadas
  • Páginas revisadas y un indicador hasMore
  • Conjuntos de resultados por región e idioma (proxy_country + language)
  • Hasta 10 páginas de resultados orgánicos por llamada

Endpoints dedicados

/search/duckduckgo

Resultados de búsqueda de DuckDuckGo

Resultados de búsqueda para una palabra clave: organic (position, title, url, displayedUrl, domain, description), topAds y bottomAds de la primera página, y relatedSearches, más un recuento para cada lista. Elige la región con proxy_country y language; recopila hasta 10 páginas con pages_to_check. Mismos parámetros y misma estructura de respuesta que /serpApi; totalResults es null, ya que DuckDuckGo no muestra un número de resultados.

Cómo rastrearlo

curl -X POST \
  -H "X-ScrapeUnblocker-Key: $SU_API_KEY" \
  "https://api.scrapeunblocker.com/search/duckduckgo?keyword=car%20insurance&pages_to_check=1&proxy_country=US"
import requests

resp = requests.post(
    "https://api.scrapeunblocker.com/search/duckduckgo",
    headers={"X-ScrapeUnblocker-Key": SU_API_KEY},
    params={"keyword": "car insurance", "pages_to_check": "1", "proxy_country": "US"},
)
print(resp.text)
import { ScrapeUnblockerClient } from 'scrapeunblocker';

const su = new ScrapeUnblockerClient({ apiKey: process.env.SU_API_KEY });

const results = await su.duckduckgoSearch('car insurance', {
  pagesToCheck: 1,
  proxyCountry: 'US',
});
console.log(results);

Las peticiones son POST y sus parámetros van en la query string. El renderizado en navegador siempre ocurre: no hay ningún flag que activar.

Ejemplo de respuesta

{
  "engine": "duckduckgo",
  "keyword": "car insurance",
  "country": "US",
  "language": "en",
  "totalResults": null,
  "resultsCollected": 14,
  "topAdsCount": 3,
  "bottomAdsCount": 1,
  "organicResultsCount": 10,
  "topAds": [
    {
      "position": 2,
      "title": "Side-By-Side Comparison - Car Insurance From $29/Mo",
      "url": "https://www.nerdwallet.com/m/insurance/auto-insurance/compare-quotes-control-29?...",
      "displayedUrl": "https://www.nerdwallet.com › insurance › car",
      "domain": "nerdwallet.com",
      "description": "Discover how much you could save on car insurance. Get multiple quotes in minutes!..."
    }
  ],
  "bottomAds": [
    {
      "position": 1,
      "title": "GEICO® Official Site - Get a Free GEICO® Quote Today",
      "url": "https://ad.doubleclick.net/searchads/link/click?lid=43700084044715165&...",
      "displayedUrl": "https://www.geico.com › Auto",
      "domain": "geico.com",
      "description": "Get a Free Quote Today. GEICO®'s Car Insurance Quotes Are Personalized For You..."
    }
  ],
  "organic": [
    {
      "position": 1,
      "title": "Cheapest Car Insurance in New York: Rates & Top Companies",
      "url": "https://insurify.com/car-insurance/new-york/",
      "displayedUrl": "https://insurify.com › car-insurance › new-york",
      "domain": "insurify.com",
      "description": "Compare the cheapest car insurance in New York for 2026, including average rates, top insurers..."
    }
  ],
  "relatedSearches": ["car insurance quotes online", "car insurance near me", "compare car insurance"],
  "pagesChecked": 1,
  "hasMore": true
}

Leer la documentación

Preguntas frecuentes

¿Es legal hacer scraping de DuckDuckGo?

Recopilar datos públicos de DuckDuckGo como resultados orgánicos, anuncios y búsquedas relacionadas es lícito en muchas jurisdicciones, pero las normas dependen de tu país, de los datos que recopiles y de cómo los uses. ScrapeUnblocker devuelve los resultados públicos; qué recopilas y cómo lo usas es responsabilidad tuya.

¿Cómo hago scraping de DuckDuckGo sin que me bloqueen?

DuckDuckGo usa detección de bots y pone desafíos a los clientes que no son un navegador real. El plugin /search/duckduckgo renderiza la primera página de resultados en un navegador real a través de un exit en el país que elijas, reintenta con un exit nuevo cuando una página llega bloqueada y devuelve JSON parseado. En el benchmark de ScrapeUnblocker devolvió resultados reales en el 100 % de 1.040 llamadas con consultas distintas, unos 3,1 s por llamada.

¿Qué datos de DuckDuckGo puedo obtener?

/search/duckduckgo devuelve JSON con la misma estructura que /serpApi: resultados orgánicos con posición, título, URL, URL visible, dominio y descripción, anuncios superiores e inferiores en sus propias listas, relatedSearches y un recuento para cada lista, además de pagesChecked y hasMore. Los anuncios vienen solo de la primera página y DuckDuckGo no los muestra en todas las consultas. totalResults siempre es null, porque DuckDuckGo no muestra un número de resultados.

¿Necesito una API o una cuenta de DuckDuckGo?

No. DuckDuckGo no ofrece una API oficial para su lista de resultados; su Instant Answer API devuelve resúmenes de temas, no resultados de búsqueda. El plugin recibe una palabra clave y devuelve los resultados como JSON parseado, sin cuenta por tu parte, y como la estructura coincide con /serpApi, el código escrito para resultados de Google lee los de DuckDuckGo cambiando solo la ruta.

¿Puedo hacer scraping de resultados de DuckDuckGo desde un país concreto?

Sí. Pasa proxy_country con un código de país de dos letras (por defecto US) y language con un código de idioma de dos letras (por defecto en). proxy_country fija la región de DuckDuckGo y el exit a través del que se renderiza la primera página, así que los resultados y los anuncios siguen ese país, y language fija el idioma de la interfaz.

¿Cuánto cuesta hacer scraping de DuckDuckGo?

Cada página de resultados obtenida se factura como una petición: una llamada con pages_to_check=3 que devuelve tres páginas cuenta como 3 peticiones, y pagesChecked muestra el número exacto. 1 petición = 1 crédito, 1,00 EUR por cada 1.000 en Pay as you go, bajando hasta unos 0,55 EUR por cada 1.000 en el plan Ultimate. No se facturan los bloqueos ni los timeouts, y la prueba gratuita incluye 500 peticiones sin tarjeta.

Scrapers relacionados

Empieza a rastrear este sitio hoy

Plan gratuito incluido. No necesitas tarjeta para probarlo.