Tải xuống một bản sao địa phương đang hoạt động của một trang web [đã đóng]


210

Tôi muốn tải xuống một bản sao cục bộ của một trang web và nhận tất cả các css, hình ảnh, javascript, v.v.

Trong các cuộc thảo luận trước đây (ví dụ ở đâyở đây , cả hai đều hơn hai tuổi), hai đề xuất thường được đưa ra: wget -pomerack . Tuy nhiên, những đề xuất này đều thất bại. Tôi rất đánh giá cao sự giúp đỡ với việc sử dụng một trong hai công cụ này để hoàn thành nhiệm vụ; lựa chọn thay thế cũng đáng yêu.


Lựa chọn 1: wget -p

wget -ptải thành công tất cả các điều kiện tiên quyết của trang web (css, hình ảnh, js). Tuy nhiên, khi tôi tải bản sao cục bộ trong trình duyệt web, trang không thể tải các điều kiện tiên quyết vì các đường dẫn đến các điều kiện tiên quyết đó chưa được sửa đổi từ phiên bản trên web.

Ví dụ:

  • Trong html của trang, <link rel="stylesheet href="https://stackoverflow.com/stylesheets/foo.css" />sẽ cần phải được sửa để trỏ đến đường dẫn tương đối mới củafoo.css
  • Trong tệp css, background-image: url(/images/bar.png)tương tự sẽ cần phải được điều chỉnh.

Có cách nào để sửa đổi wget -pđể các đường dẫn là chính xác?


Tùy chọn 2: omerack

httrackcó vẻ như là một công cụ tuyệt vời để phản chiếu toàn bộ trang web, nhưng tôi không rõ cách sử dụng nó để tạo một bản sao cục bộ của một trang. Có rất nhiều cuộc thảo luận trong các diễn đàn omerack về chủ đề này (ví dụ ở đây ) nhưng dường như không ai có giải pháp chống đạn.


Lựa chọn 3: công cụ khác?

Một số người đã đề xuất các công cụ trả phí, nhưng tôi không thể tin rằng không có giải pháp miễn phí nào ngoài đó.


19
Nếu câu trả lời không hiệu quả, hãy thử: wget -E -H -k -K -p http://example.com- chỉ điều này có hiệu quả với tôi. Tín dụng: superuser.com/a/136335/94039
it_me

Ngoài ra còn có phần mềm để làm điều đó, Teleport Pro .
sở thích

3
wget --random-wait -r -p -e robots=off -U mozilla http://www.example.com
davidcondrey

Câu trả lời:


262

wget có khả năng làm những gì bạn đang yêu cầu. Chỉ cần thử như sau:

wget -p -k http://www.example.com/

Các -psẽ giúp bạn có được tất cả các yếu tố cần thiết để xem các trang web một cách chính xác (css, hình ảnh, vv). Các -ksẽ thay đổi tất cả các liên kết (bao gồm cả những người cho CSS & hình ảnh) để cho phép bạn xem các trang ẩn như nó xuất hiện trên mạng.

Từ các tài liệu Wget:

‘-k’
‘--convert-links’
After the download is complete, convert the links in the document to make them
suitable for local viewing. This affects not only the visible hyperlinks, but
any part of the document that links to external content, such as embedded images,
links to style sheets, hyperlinks to non-html content, etc.

Each link will be changed in one of the two ways:

    The links to files that have been downloaded by Wget will be changed to refer
    to the file they point to as a relative link.

    Example: if the downloaded file /foo/doc.html links to /bar/img.gif, also
    downloaded, then the link in doc.html will be modified to point to
    ‘../bar/img.gif’. This kind of transformation works reliably for arbitrary
    combinations of directories.

    The links to files that have not been downloaded by Wget will be changed to
    include host name and absolute path of the location they point to.

    Example: if the downloaded file /foo/doc.html links to /bar/img.gif (or to
    ../bar/img.gif), then the link in doc.html will be modified to point to
    http://hostname/bar/img.gif. 

Because of this, local browsing works reliably: if a linked file was downloaded,
the link will refer to its local name; if it was not downloaded, the link will
refer to its full Internet address rather than presenting a broken link. The fact
that the former links are converted to relative links ensures that you can move
the downloaded hierarchy to another directory.

Note that only at the end of the download can Wget know which links have been
downloaded. Because of that, the work done by ‘-k’ will be performed at the end
of all the downloads. 

2
Tôi đã thử điều này, nhưng bằng cách nào đó các liên kết nội bộ như index.html#link-to-element-on-same-pagengừng hoạt động.
rhand


12
Một số máy chủ sẽ phản hồi với mã 403 nếu bạn sử dụng wget mà không có Tác nhân người dùng, bạn có thể thêm-U 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.6) Gecko/20070802 SeaMonkey/1.1.4'
nikoskip

45
Nếu bạn thấy bạn vẫn còn thiếu hình ảnh, v.v. thì hãy thử thêm điều này: -e robot = tắt ..... wget thực sự đọc và tôn trọng robot.txt - điều này thực sự khiến tôi khó hiểu tại sao không có gì đã làm việc!
John Hunt

24
để có được tài nguyên từ các máy chủ nước ngoài sử dụng-H, --span-hosts
davidhq
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.