2016-05-03 15 views
5

Quello che voglio fare è semplicemente inviare stringhe di query (l'equivalente di digitare nella barra di ricerca a mano) e salvare l'URL dei primi risultati (se ce ne sono).API di Duckduckgo che ottengono risultati di ricerca

Ho fatto una domanda simile (Python search scraping) e la risposta ad esso funziona bene con Google il mio problema è che non riesco a trovare l'indirizzo di ricerca di Duckduckgo ovunque. Potresti aiutarmi o suggerire un altro modo per farlo?

+2

Questo sembra essere un duplicato di http://stackoverflow.com/questions/11722465/duckduckgo-api-not-returning-results. – ethanbustad

risposta

14

tl; dr - - schermo raschiare https://duckduckgo.com/html/?q= {} SEARCH_TERMS

Come altri hanno già detto answerers, l'URL per API DuckDuckGo è

http://api.duckduckgo.com/?q=x&format=json 

x essendo i termini di ricerca che stai cercando.

Tuttavia, si prega di notare che questa è non è una ricerca completa API. Come DuckDuckGo's API page menzioni,

Questa API non include tutti i nostri collegamenti, tuttavia. Cioè, non è un'API completa dei risultati di ricerca o un modo per ottenere risultati DuckDuckGo nelle tue applicazioni oltre le nostre risposte istantanee. A causa del modo in cui lo we generate our search results, purtroppo non abbiamo i diritti di sindacare completamente i nostri risultati. Per lo stesso motivo, non possiamo permettere di inquadrare i nostri risultati senza il nostro marchio. Si prega di vedere our partnerships page per maggiori informazioni sulle linee guida e di entrare in contatto con noi.

Questa è un'API di risposta immediata e non un'API completa dei risultati. Tuttavia, ci sono alcuni collegamenti Web al suo interno, ad es. siti ufficiali.

Quindi per il vostro scopo dichiarato di

solo la presentazione delle domande di stringa (l'equivalente di digitare nella barra di ricerca a mano) e salvando l'URL dei primi risultati (se ce ne sono).

api.duckduckgo.com non ti farà ottenere ciò che desideri.

La cosa migliore è probabilmente quello di schermo proprio raschiare le non-JS, versione web di DuckDuckGo:

https://duckduckgo.com/html/?q=x 

alla ricerca di elementi con un selettore di qualcosa come div.result o div.web-result.

+0

Grazie, quindi le ultime tre righe sono esposte nelle risposte delle domande collegate? – Nesa

+0

@Nesa sì! Soprattutto se ti interessa fare lo screen-scraping in python. – ethanbustad

+0

Grazie per il suggerimento esperto. Ti interessa spiegare i vantaggi dell'utilizzo del parametro JSON? – ntk4

3

basta cambiare con quello che si desidera cercare. Questa uscita i risultati in JSON

https://api.duckduckgo.com/?q=<your search string>&format=json&pretty=1&no_html=1&skip_disambig=1 

credo che questo è ciò che stai chiedendo

Problemi correlati