Cách thu thập dữ liệu bằng wget để tải xuống các tệp HTML CHỈ (bỏ qua hình ảnh, css, js)


14

Về cơ bản, tôi muốn thu thập dữ liệu toàn bộ trang web bằng Wget, nhưng tôi cần nó KHÔNG BAO GIỜ tải xuống các tài sản khác (ví dụ: hình ảnh, CSS, JS, v.v.). Tôi chỉ muốn các tệp HTML.

Tìm kiếm Google hoàn toàn vô dụng.

Đây là một lệnh tôi đã thử:

wget --limit-rate=200k --no-clobber --convert-links --random-wait -r -E -e robots=off -U "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.102 Safari/537.36" -A html --domain=www.example.com http://www.example.com

Trang web của chúng tôi là hybrid phẳng-PHP và CMS. Vì vậy, HTML "tác phẩm" có thể là /path/to/page, /path/to/page/, /path/to/page.php, hoặc /path/to/page.html.

Tôi thậm chí đã bao gồm -R js,cssnhưng nó vẫn tải xuống các tệp, THÌ từ chối chúng (lãng phí vô nghĩa về băng thông, CPU và tải máy chủ!).


2
Lệnh bạn đã thử cho đến nay là gì? Nếu việc đặt tên tệp là nhất quán, bạn sẽ có thể sử dụng cờ -R. Ngoài ra, bạn có thể sử dụng cờ --ignore-tags và bỏ qua các tập lệnh và thẻ img.
ernie


Tôi đã thử sử dụng --accept = html, nhưng nó tải xuống các tệp CSS THÌ xóa chúng. Tôi muốn ngăn chặn chúng tải về. Mặc dù vậy, một yêu cầu tiêu đề vẫn ổn - Ví dụ: tôi nhận thấy Length: 558 [text/css]các tệp tôi không muốn. Nếu tôi có thể dừng yêu cầu nếu tiêu đề không trở lại text/html, tôi sẽ rất phấn khởi.
Nathan JB

Câu trả lời:


13

Nhận xét của @ ernie về việc --ignore-tagsdẫn tôi xuống con đường đúng! Khi tôi nhìn lên --ignore-tagstrong man, tôi nhận thấy --follow-tags.

Setting --follow-tags=acho phép tôi bỏ qua img, link, scriptvv

Có lẽ nó quá giới hạn đối với một số người tìm kiếm cùng một câu trả lời, nhưng nó thực sự hoạt động tốt trong trường hợp của tôi (không sao nếu tôi bỏ lỡ một vài trang).

Nếu bất cứ ai tìm thấy cách cho phép quét TẤT CẢ các thẻ, nhưng chỉ ngăn chặn wgettừ chối các tệp sau khi chúng được tải xuống (họ nên từ chối dựa trên tên tệp hoặc tiêu đề Kiểu nội dung trước khi tải xuống), tôi sẽ rất vui vẻ chấp nhận câu trả lời của họ!


5

những gì về việc thêm các tùy chọn:

--reject '*.js,*.css,*.ico,*.txt,*.gif,*.jpg,*.jpeg,*.png,*.mp3,*.pdf,*.tgz,*.flv,*.avi,*.mpeg,*.iso'
--ignore-tags=img,link,script 
--header="Accept: text/html"
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.