Rip trang web qua HTTP để tải xuống hình ảnh, HTML và CSS


22

Tôi cần trích xuất một trang web thông qua HTTP. Tôi cần tải xuống hình ảnh, HTML, CSS và JavaScript cũng như sắp xếp nó trong một hệ thống tệp.

Có ai biết cách để làm điều này không?


2
Bạn nên đề cập rằng bạn sẽ không sử dụng phần mềm này để vi phạm bản quyền. Mặt khác, chúng tôi chỉ cho rằng bạn muốn phản chiếu nội dung của người khác để bạn có thể kiếm tiền từ nội dung đó.
belgariontheking

Chúng tôi đã từng có một khách hàng muốn rời đi, nhưng lấy phiên bản HTML tĩnh của trang web của họ, từ bỏ CMS. Tôi đã sử dụng HTTrack để tạo trang web tĩnh. Nó hoạt động tốt trên Windows và Ubuntu.
TRiG

4
@belgariontheking: Thú vị là bạn cho là tồi tệ nhất. Chúng tôi cũng sử dụng WinHTTrack để tải xuống phiên bản HTML tĩnh của trang web động của chính chúng tôi.
Umber Ferrule

Câu trả lời:


40
wget -erobots=off --no-parent --wait=3 --limit-rate=20K -r -p -U "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" -A htm,html,css,js,json,gif,jpeg,jpg,bmp http://example.com

Điều này chạy trong giao diện điều khiển.

việc này sẽ lấy một trang web, đợi 3 giây giữa các yêu cầu, giới hạn tốc độ tải xuống để nó không giết trang web và che giấu nó theo cách khiến nó dường như chỉ là một trình duyệt để trang web không cắt bạn sử dụng cơ chế chống đỉa.

Lưu ý -Atham số cho biết danh sách các loại tệp bạn muốn tải xuống.

Bạn cũng có thể sử dụng một thẻ khác, -D domain1.com,domain2.comđể chỉ ra một loạt tên miền bạn muốn tải xuống nếu họ có máy chủ khác hoặc bất cứ thứ gì để lưu trữ các loại tệp khác nhau. Không có cách nào an toàn để tự động hóa điều đó cho mọi trường hợp, nếu bạn không nhận được các tệp.

wgetthường được cài đặt sẵn trên Linux, nhưng có thể được biên dịch một cách tầm thường cho các hệ thống Unix khác hoặc dễ dàng tải xuống cho Windows: GNUwin32 WGET

Sử dụng điều này cho tốt và không xấu.


1
wget -erobots = off --no-Parent --wait = 3 --limit-Rate = 50K -r -p -U "Mozilla / 4.0 (tương thích; MSIE 7.0; Windows NT 5.1)" -k --directory-prefix "C: \ rip" --page-certisites -A htm, aspx, php, jsp, asp, zip, png, html, css, js, json, gif, jpeg, jpg, bmp domain.com
Chris S

Điều này có hoạt động trên "URL Vanity" không? Tôi lo lắng về nội dung của mình (OK, các bài hát) được viết trên một trang mạng xã hội và tôi muốn sao lưu nội bộ. Trang web là "www.example.com" nhưng có một URL phù hợp với tên người dùng của tôi "avi.example.com". Tôi không muốn tải xuống toàn bộ trang web, chỉ nội dung của tôi!
Avi

Trên Linux, bạn có thể muốn cài đặt wget từ các nguồn. Ví dụ, phiên bản Ubuntu không phân tích CSS trong khi wget ngược dòng thì có.
GDR

16

Giải pháp tốt, miễn phí: HTTrack

HTTrack là một tiện ích trình duyệt ngoại tuyến miễn phí (GPL, libre / miễn phí) và dễ sử dụng.

Nó cho phép bạn tải một trang web World Wide Web từ Internet về một thư mục cục bộ, xây dựng đệ quy tất cả các thư mục, nhận HTML, hình ảnh và các tệp khác từ máy chủ vào máy tính của bạn. HTTrack sắp xếp cấu trúc liên kết tương đối của trang web gốc. Chỉ cần mở một trang của trang web "nhân đôi" trong trình duyệt của bạn và bạn có thể duyệt trang web từ liên kết này đến liên kết khác, như thể bạn đang xem nó trực tuyến. HTTrack cũng có thể cập nhật một trang web nhân đôi hiện có và tiếp tục tải xuống bị gián đoạn. HTTrack có thể cấu hình đầy đủ và có hệ thống trợ giúp tích hợp.


7

Trên các hệ thống Linux, 'wget' thực hiện điều này, khá nhiều.

Nó cũng đã được chuyển đến một số nền tảng khác, như một số câu trả lời khác đề cập.



Vì là Linux nên tôi có thể chỉ cần tạo một máy ảo Ubuntu, chạy wget và chuyển các tệp trở lại máy tính chủ của tôi. Có vẻ như điều đó sẽ nhanh hơn việc chuyển sang Windows. :) (Được cấp, chuyển sang Windows có lẽ là một bài tập tốt!)
JMD

Tôi chạy debian trên máy của tôi. Tôi có thể nói với wget để lấy các thư mục con liên kết / javascript / css / hình ảnh bằng cách chỉ cho tên miền gốc http không?
damon

# Tải xuống toàn bộ nội dung của example.com wget -r -l 0 example.com

Vâng ... hoặc sử dụng cổng Windows gốc hoặc sử dụng Cygwin ...
Tmdean

2

Rõ ràng WGet đã được đề cập một vài lần. Giao diện người dùng tốt nhất tôi tìm thấy cho nó là

Có một số UI khác cho WGet xung quanh, một số trong số đó là ứng cử viên cho câu hỏi ui tồi tệ nhất


1

Nhìn vào phần mở rộng Sổ lưu niệm cho firefox. Nó thực hiện một công việc tuyệt vời ở đây và cũng tích hợp với fireorms và cho phép bạn xóa các thành phần khỏi DOM trước khi bạn lưu nếu bạn muốn.


1

Bạn cần sử dụng wget - có sẵn cho hầu hết các nền tảng. curl sẽ không yêu cầu tài liệu đệ quy, đó là một trong những thế mạnh chính của wget.

Linux: (thường được bao gồm trong bản phân phối) http://www.gnu.org/software/wget/
Windows: http://gnuwin32.sourceforge.net/packages/wget.htmlm
Mac: http: //www.geekology. co.za/blog/2009/02/macports-compile-and-install-open-source-software-on-mac-os-x/

Vui lòng đảm bảo rằng bạn không làm hỏng trang web - thiết lập độ trễ phù hợp giữa các yêu cầu và đảm bảo rằng nó nằm trong điều khoản dịch vụ của trang web.

-Adam


Trên thực tế, đó là các máy chủ của chúng tôi mà chúng tôi đang đập. trang web được tạo động thông qua PHP và CMS / DB được sắp xếp theo thứ tự. đó là một câu chuyện phức tạp, tôi là nhà phát triển vừa mới đến đây. nhưng chúng tôi đang xây dựng mọi thứ trong django, vì vậy bạn không cần phải lo lắng.
damon

1

Trên thực tế, theo dõi bình luận của tôi trong bài đăng của GWLlosa, tôi chỉ nhớ rằng tôi đã cài đặt GnuWin32 và chắc chắn rằng nó có chứa một cổng Windows.

http://sourceforge.net/projects/gnuwin32/

GnuWin32 provides Win32-versions of GNU tools,
or tools with a similar open source licence.
The ports are native ports, that is they rely
only on libraries provided with any 32-bits
MS-Windows operating system, such as
MS-Windows 95 / 98 / 2000 / NT / XP

1

Tôi đã sử dụng điều này một vài năm trước và nó hoạt động tốt. Chỉ có Windows. Được sử dụng để trở thành phần mềm quảng cáo nhưng không còn nữa, rõ ràng:

http://www.webreaper.net/


1

wget --random-wait -r -p -e robots=off -U "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" --limit-rate=20k -b http://www.example.com

  • -p : tham số cho biết wget bao gồm tất cả các tệp, bao gồm cả hình ảnh.
  • -e robots=off : bỏ qua các quy tắc robot.txt
  • -U "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" : chuỗi tác nhân người dùng
  • --random-wait : tránh bị đưa vào danh sách đen
  • --limit-rate=20k : giới hạn tốc độ tải tệp.
  • -b : tiếp tục wget sau khi đăng xuất.

Đây là những thông số tôi sử dụng. Tôi cũng thêm tùy chọn -c(hoặc --continue) khi có sự cố và tôi phải khởi động lại quy trình.
kub1x


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.