It used to work in DuckDuckGo with the following code in my dot-emacs:

(require 'w3m-search)
(setq w3m-search-default-engine "DuckDuck Go")
(add-to-list 'w3m-search-engine-alist
    '("DuckDuck Go" "https://duckduckgo.com/?q=%s"))

(global-set-key (kbd "M-g M-w") 'w3m-search)

(defadvice w3m-search (after change-default activate)
      (let ((engine (nth 1 minibuffer-history)))
  (when (assoc engine w3m-search-engine-alist)
    (setq w3m-search-default-engine engine))))

But recently DuckDuckGo redirect the search to https://lite.duckduckgo.com/lite/ and the GET method does not work anymore: The (correct) search result page of https://lite.duckduckgo.com/lite/ contains no search string and its form use the POST method instead.

With a search string attached at the end of the URL, e.g. searching for 'emacsclient' with my code posted above (https://lite.duckduckgo.com/lite/?q=emacsclient) links of the search results become malformed, e.g. link to emacswiki's Emacsclient page will become https://lite.duckduckgo.com/l/?kh=-1&uddg=https%3A%2F%2Fwww.emacswiki.org%2Femacs%2FEmacsClient instead of https://www.emacswiki.org/emacs/EmacsClient

Is it a bug in w3m-search or is there something w3m-search can do to make it work again?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.