I don't seem to have any trouble with org-eww-copy-for-org-mode. I capture with a capture template. The code below may be longer or more than you want, but it works for me.
My capture template is this: ("w" "Website" plain (function org-website-clipper) "* %a\n%T\n" :immediate-finish t) And it depends on the following code. (require 'ol-eww) (require 'ol-w3m) ;;; Change this to suit: (defvar org-website-page-archive-file "~/organize/website/websites.org") (defun org-website-clipper () "When capturing a website page, go to the right place in capture file, but do sneaky things. Because it's a w3m or eww page, we go ahead and insert the fixed-up page content, as I don't see a good way to do that from an org-capture template alone. Requires Emacs 25+ and the 2017-02-12 or later patched version of org-eww.el." (interactive) ;;; Address the plague of trailing whitespace in some web buffers. (let ((buffer-read-only nil)) (delete-trailing-whitespace)) ;;; Check for acceptable major mode (w3m or eww) and set up a couple of ;;; browser specific values. Error if unknown mode. (cond ((eq major-mode 'w3m-mode) (org-w3m-copy-for-org-mode)) ((eq major-mode 'eww-mode) (org-eww-copy-for-org-mode)) (t (error "Not valid -- must be in w3m or eww mode"))) ;;; Check if we have a full path to the archive file. ;;; Create any missing directories. (unless (file-exists-p org-website-page-archive-file) (let ((dir (file-name-directory org-website-page-archive-file))) (unless (file-exists-p dir) (make-directory dir)))) ;; Open the archive file and yank in the content. ;; Headers are fixed up later by org-capture. (find-file org-website-page-archive-file) (goto-char (point-max)) ;; Leave a blank line for org-capture to fill in ;; with a timestamp, URL, etc. (insert "\n\n") ;; Insert the web content but keep our place. (save-excursion (yank)) ;; Don't keep the page info on the kill ring. ;; Also fix the yank pointer. (setq kill-ring (cdr kill-ring)) (setq kill-ring-yank-pointer kill-ring) ;; Final repositioning. (forward-line -1) )