diff --git a/searx/engines/duckduckgo.py b/searx/engines/duckduckgo.py index dcf6543d6..7c2bc1b63 100644 --- a/searx/engines/duckduckgo.py +++ b/searx/engines/duckduckgo.py @@ -2,25 +2,196 @@ """ DuckDuckGo WEB ~~~~~~~~~~~~~~ -""" +DDG's WEB search: + +- DuckDuckGo WEB : ``https://links.duckduckgo.com/d.js?q=..`` (HTTP GET) +- DuckDuckGo WEB no-AI: ``https://noai.duckduckgo.com/`` (HTTP GET) +- DuckDuckGo WEB html : ``https://html.duckduckgo.com/html`` (HTTP POST no-JS / form data) +- DuckDuckGo WEB lite : ``https://lite.duckduckgo.com/lite`` (HTTP POST no-JS / form data) + +DDG's content search / see engine ``duckduckgo_extra.py`` + +- DuckDuckGo Images : ``https://duckduckgo.com/i.js??q=...&vqd=...`` +- DuckDuckGo Videos : ``https://duckduckgo.com/v.js??q=...&vqd=...`` +- DuckDuckGo News : ``https://duckduckgo.com/news.js??q=...&vqd=...`` + +.. hint:: + + For WEB searches and to determine the ``vqd`` value, DDG-html (no-JS) is + used. + +Special features of the no-JS services (DDG-lite & DDG-html): + +- The no-JS clients receive a form that contains all the controlling parameters. +- When the form data is submitted, a real WEB browser sets the HTTP _Sec-Fetch_ headers. + +HTML ``