Làm thế nào để tải xuống với wget mà không cần theo các liên kết với các tham số


11

Tôi đang cố tải xuống hai trang web để đưa vào CD:

http://boinc.berkeley.edu/trac/wiki
http://www.boinc-wiki.info

Vấn đề tôi gặp phải là cả hai đều là wiki. Vì vậy, khi tải xuống với ví dụ:

wget -r -k -np -nv -R jpg,jpeg,gif,png,tif http://www.boinc-wiki.info/

Tôi nhận được rất nhiều tệp vì nó cũng theo các liên kết như ...? Action = chỉnh sửa ...? Action = diff & version = ...

Có ai biết một cách để khắc phục điều này?

Tôi chỉ muốn các trang hiện tại, không có hình ảnh và không có khác biệt, v.v.

Tái bút

wget -r -k -np -nv -l 1 -R jpg,jpeg,png,gif,tif,pdf,ppt http://boinc.berkeley.edu/trac/wiki/TitleIndex

Điều này làm việc cho ber ở nhưng boinc-wiki.info vẫn gây rắc rối cho tôi: /

PPS:

Tôi đã nhận được những gì dường như là các trang có liên quan nhất với:

wget -r -k -nv  -l 2 -R jpg,jpeg,png,gif,tif,pdf,ppt http://www.boinc-wiki.info

Không cần phải đăng chéo giữa superuser và serverfault serverfault.com/questions/156045/ Khăn
Bryan

Tôi nên đăng nó ở đâu?
Tie-Fighter

Đây là chỗ tốt. Đây không phải là một câu hỏi máy chủ.
David Z

Tuy nhiên, tôi vẫn nhận được câu trả lời tốt hơn tại serverfault;)
Tie-Fighter

Câu trả lời:


5

Phiên bản mới của wget (v.1.14) giải quyết tất cả những vấn đề này.

Bạn phải sử dụng tùy chọn mới --reject-regex=....để xử lý các chuỗi truy vấn.

Lưu ý rằng tôi không thể tìm thấy hướng dẫn mới bao gồm các tùy chọn mới này, vì vậy bạn phải sử dụng lệnh trợ giúp wget --help > help.txt


4
wget --reject-regex '(.*)\?(.*)' http://example.com

( --reject-type posixtheo mặc định). Tuy nhiên, chỉ hoạt động cho các phiên bản (> = 1.14) gần đây wget, theo các bình luận khác.

Coi chừng rằng dường như bạn chỉ có thể sử dụng --reject-regexmột lần cho mỗi wgetcuộc gọi. Đó là, bạn phải sử dụng |trong một regex duy nhất nếu bạn muốn chọn trên một số regex:

wget --reject-regex 'expr1|expr2|…' http://example.com

Có thể đúng về yêu cầu phiên bản. Tôi đã có v1.12 và tùy chọn không hợp lệ. Sau khi nâng cấp lên v1.15.
yunzen

Thay thế Regex bằng |biểu tượng ("pipe") không hoạt động với tôi với GNU Wget 1.16.
sampablokuper

0
wget -R "*?action=*"

Điều này sẽ loại trừ bất cứ thứ gì có ?action=trong tên của nó.


3
"Cũng lưu ý rằng các chuỗi truy vấn (chuỗi ở cuối URL bắt đầu bằng dấu chấm hỏi ('?') Không được bao gồm như một phần của tên tệp cho quy tắc chấp nhận / từ chối, mặc dù những chuỗi này thực sự sẽ đóng góp cho tên được chọn cho tệp cục bộ. Dự kiến ​​phiên bản tương lai của Wget sẽ cung cấp tùy chọn cho phép khớp với chuỗi truy vấn. "
Tie-Fighter

Hmm, tôi đã phải bỏ lỡ điều đó. Có vẻ như bạn không thể làm điều này với wget sau đó nếu nó thậm chí không biết rằng chúng là các tệp khác nhau. Tôi đề nghị một chương trình khác nhau.
Daisetsu

-3

Tôi muốn nói rằng việc lấy một trang wiki công cộng là một thực tế tồi, bởi vì nó đặt thêm tải cho nó.

Nếu wiki là công khai và chủ sở hữu trang web không ngại chia sẻ nội dung, họ thường cung cấp kết xuất phụ trợ (cơ sở dữ liệu hoặc bất cứ thứ gì) có thể tải xuống. Vì vậy, bạn chỉ cần tải xuống gói dữ liệu, thiết lập một phiên bản cục bộ của cùng một công cụ wiki, nhập dữ liệu vào đó và có một bản sao cục bộ. Sau đó, nếu bạn muốn, bạn có thể làm đỉa tại địa phương.


Có -w giây. ví dụ -w 5. gnu.org/software/wget/manual/html_node/...
barlop
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.