Phần mềm rip toàn bộ giao diện và nội dung website
[You must be registered and logged in to see this link.]Thiết kế giao diện cho website tốn khá nhiều thời gian, trong khâu lập trình ra một website hoàn chỉnh. Bạn có một website mẫu và muốn làm giao diện y hệt như vậy? bạn đừng lo lắng vì giờ đây đã có công cụ cho phép bạn copy toàn bộ giao diện của trang web thành HTML.
[You must be registered and logged in to see this link.]Sau đây là 3 công cụ copy giao diện và nội dung website tốt nhất mà mình biết.
HTTrack Website Copier
Đầu tiên các bạn tải phần mềm tại :
[You must be registered and logged in to see this link.] Đây là công cụ được đánh giá là tốt nhất hiện nay. Trước đây mình có sử dụng nhiều công cụ để rip giao diện web nhưng đều không ăn thua, các tài nguyên như ảnh, js,css không được tải về hay mã html còn thiếu.
Vấn đề đầu tiên mình gặp phải với HTTrack là phần mềm này có quá nhiều tính năng, thật choáng ngợp , những gì mình trình bày trong bài viết này là kỹ năng và công thức mình đã thực hành thành công.
Có 2 phiên bản sử dụng, phiên bản giao diện và sử dụng lệnh command line. Mình khuyến khích sử dụng lệnh vì nó chính xác hơn.
vào cmd trỏ vào thư mục cài đặt “c:\Program Files\WinHTTrack” gõ thử: httrack để test. Nếu sử dụng lâu dài thì có thể thêm vào “system environment variables windows, để sử dụng thư viện command line ở mọi folder không cần phải trỏ vào thư mục gốc của nó. Xem
[You must be registered and logged in to see this link.] tại đây.
Nhập vào lệnh sau:
httrack "http://demo.hoangweb.com/thevistaanphu" -O "/tmp/thevistaanphu" "+*.hoangweb.com/*" -v
Câu lệnh trên sẽ tải toàn bộ nội dung website có địa chỉ là “http://demo.hoangweb.com/thevistaanphu” và lưu vào thư mục c:/tmp/thevistaanphu. Giới hạn chỉ download page và tài nguyên đến từ domain hoangweb.com
Tham số
- Code:
-
-O
nghĩa là “output to” (lưu vào đâu đó),
- Code:
-
-v
: verbose (hiển thị toàn bộ tiến trình tải dữ liệu (gồm thành công và lỗi nếu gặp phải) ra cửa sổ lệnh).
Đây là lệnh phổ biến nhất mà tôi hay sử dụng. Chú ý: kiên trì đợi vài phút để quá trình tải dữ liệu của website hoàn tất.
[You must be registered and logged in to see this link.] Cấu trúc dữ liệu tải về
Các file tải về được lưu có cấu trúc theo địa URL. Ví dụ: ở ví dụ trên httrack tải địa chỉ
[You must be registered and logged in to see this link.] đây là website sử dụng mã nguồn wordpress, vào website này chúng ta thấy có ảnh logo, và các ảnh được lấy ra ở trong theme.
[You must be registered and logged in to see this link.]...
Như vậy ảnh 1-logo1[1].jpg này sẽ được lưu tại folder:
c:/tmp/thevistaanphu/demo.hoangweb.com/thevistaanphu/wp-content/photography_uploads/
Ảnh progress.gif nằm ở folder:
c:/tmp/thevistaanphu/demo.hoangweb.com/thevistaanphu/wp-content/themes/elegant-photography/images/
.Nếu có external link ngoài domain hoangweb.com thì tài nguyên đến từ domain đó vẫn được lấy dữ liệu.
Sử dụng trợ giúp về lệnh, nếu bạn không chắc chắn về cách sử dụng lệnh đó, hãy gõ:
- Code:
-
httrack --help
để tra.
Cú pháp
httrack
[You must be registered and logged in to see this link.]lệnh này khá đơn giản , các options được sử dụng mặc định. Gõ:
- Code:
-
httrack --help
bạn sẽ thấy giá trị mặc định của các tham số như sau:
w *mirror web sites
%f *use proxy for ftp (f0 don't use)
cN number of multiple connections (*c8)
RN number of retries, in case of timeout or non-fatal errors (*R1)
%P *extended parsing, attempt to parse all links, even in unknown tags or Javascript (%P0 don't use)
NN name conversion type (0 *original structure, 1+: see below)
LN long names (L1 *long names / L0 8-3 conversion)
KN keep original links (e.g.
[You must be registered and logged in to see this link.] (K0 *relative link)
o *generate output html file in case of error (404..) (o0 don't generate)
X *purge old files after update (X0 keep delete)
bN accept cookies in cookies.txt (0=do not accept,* 1=accept)
u check document type if unknown (cgi,asp..) (u0 don't check, * u1 check but /, u2 check always)
j *parse Java Classes (j0 don't parse)
sN follow robots.txt and meta robots tags (0=never,1=sometimes,* 2=always)
C create/use a cache for updates and retries (C0 no cache,C1 cache is prioritary,* C2 test update before)
f *log file mode
I *make an index (I0 don't make)
pN priority mode: (* p3) *3 save all files
D *can only go down into subdirs
a *stay on the same address
--mirror *make a mirror of site(s) (default)
Giải thích:
Lọc các link tải về Cho phép chỉ tải các link có chứa domain, subdomain hoặc URL chứa một chuỗi nào đó có hỗ trợ widcat.
httrack
[You must be registered and logged in to see this link.] "+*.hoangweb.com/*" -v
Print Debug Để hiển thị thông tin tiến trình tải dữ liệu sử dụng thêm tham số
- Code:
-
-v
(verbose).
httrack
[You must be registered and logged in to see this link.] -v
Tham số -B Cho phép tải URL ở sub-level. Ví dụ:
httrack
[You must be registered and logged in to see this link.] -B
Trương trình không chỉ tải những URL con có chứa đường dẫn
- Code:
-
www.all.net/bob/
mà sẽ tải cả URL như:
[You must be registered and logged in to see this link.] w *mirror web sites tải dữ liệu của URL hiện tại và tự động quét các link có trong nội dung của URL đó và tiếp tục download dữ liệu của các link đó.
%f *use proxy for ftp (f0 don’t use) nếu có link ftp (ie:
[You must be registered and logged in to see this link.] thì sử dụng ftp proxy server để tải về.
cN number of multiple connections (*c8) cho phép 8 URL được download cùng một lúc. Ví dụ sau cho phép hoạt động 4 URLs cùng một lúc, thay vì mặc định là 8.
httrack
[You must be registered and logged in to see this link.] -c4 -B
RN number of retries, in case of timeout or non-fatal errors (*R1) Cố gắng download URL một lần nữa nếu URL đó bị lỗi.
%P *extended parsing, attempt to parse all links, even in unknown tags or Javascript (%P0 don’t use) quyét toàn bộ URLs thậm trí tìm thấy cả trong javascript,java và mọi nơi còn lại mà phần mềm có thể tìm thấy.
NN name conversion type (0 *original structure, 1+: see below) Lưu lại đúng cấu trúc thư mục và tên file được sử dụng trong trang web. Như đã giải thích ở trên ví dụ ta có ảnh
loading.gif sử dụng trên website có địa chỉ:
[You must be registered and logged in to see this link.]ảnh này sẽ được lưu về có cấu trúc folder theo cấu trúc URL đến ảnh đó là: hoangweb/wp-content/themes/abc/images/loading.gif
Tham số mặc định của httrack là
N0, bạn có thể viết thêm tham số này tuy nhiên nếu sử dụng giá trị mặc định thì không cần chỉ định.
1 | - Code:
-
httrack http://localhost/hoangweb/wp-content/themes/abc/images/loading.gif -N0 -g -O /tmp/images |
Tuy nhiên, tất cả files tài nguyên bạn muốn tải về chung một thư mục thì chỉ số 0 bằng 1
1 | - Code:
-
httrack http://localhost/hoangweb/wp-content/themes/abc/images/loading.gif -N1 -g -O /tmp/proj1 |
Lệnh trên sẽ tải file loading.gif vào thư mục “/tmp/proj1/web/images”. Nếu bạn cung cấp địa chỉ website hoặc URL tới một file mà nội dung có chứa các liên kết của những files tài nguyên khác. Tất cả những files tìm thấy sẽ đều lưu vào thư mục này. Bạn sẽ dễ quản lý hơn, trong những trường hợp rip giao diện của website. Đây cũng là cách để bạn
[You must be registered and logged in to see this link.].
LN long names (L1 *long names / L0 8-3 conversion) mặc định lưu file với tên sử dụng trên website.
K keep original links (e.g. [You must be registered and logged in to see this link.] (K0 *relative link) ví dụ tải về nội dung web có địa chỉ:
[You must be registered and logged in to see this link.] thì file html của nó nằm tại: /thevistaanphu/gioi-thieu/index.html
o *generate output html file in case of error (404..) (o0 don’t generate) nếu có xẩy ra lỗi trong khi tải URL, trương trình sẽ tạo một file thay thế với nội dung thông báo URL đó đã bị lỗi (404 not found).
bN accept cookies in cookies.txt (0=do not accept,* 1=accept) cho phép tất cả các cookies hoạt động nếu được yêu cầu, một số site cần duy trì cookie để sử dụng cho nhiều trang nó sẽ hoạt động như trên trình duyệt bình thường nên bạn không phải lo lắng.
u check document type if unknown (cgi,asp..) (u0 don’t check, * u1 check but /, u2 check always) Phân tích những kiểu file không phải là html,image type như asp, php,…những file này có thể được tải về.
j *parse Java Classes (j0 don’t parse) Cho phép phân tích và tìm URL ở java class file.
sN follow robots.txt and meta robots tags (0=never,1=sometimes,* 2=always) có sử dụng robots.txt để chặn những URL không được phép truy cập.
C create/use a cache for updates and retries (C0 no cache,C1 cache is prioritary,* C2 test update before) nếu bạn đang tải một website mà đã tải trước đó rồi, thì những URL cũ sẽ bị bỏ qua và chỉ tải những URL mới “
- Code:
-
If-Modified-Since
“.
f *log file mode lưu tại vào file log những hoạt động quan trọng diễn ra trong quá trình download.
I *make an index (I0 don’t make) tạo file index.html là file chính của URL từ file này có liên kết tới các URL khác đã được download.
pN priority mode: (* p3) *3 save all files lưu lại tất cả các file đã được tải về.
a *stay on the same address Mỗi một domain được lưu vào một thư mục có cùng tầng, theo cấu trúc URL. Ví dụ trên:
[You must be registered and logged in to see this link.] có liên kết tới domain
[You must be registered and logged in to see this link.] như vậy chúng ta có 2 thư mục.
chứa tại c:\tmp\thevistaanphu\demo.hoangweb.com và c:\tmp\thevistaanphu\
[You must be registered and logged in to see this link.] –mirror *make a mirror of site(s) (default) cố gắng download hết tài nguyên có thể theo như cấu hình đã lập.
Chi tiết câu lệnh
General Options
Chỉ định lưu dữ liệu tải về
Sử dụng tham số -O theo sau là đường dẫn thư mục bạn muốn lưu.
httrack
[You must be registered and logged in to see this link.] -O /tmp/shoesizes
Action Options
Tham số:
- -w *không đưa ra câu hỏi nhưng có xác nhận để cho phép trương trình tiến hành tải dữ liệu của website (mirror web sites).
- -W trong quá trình tải dữ liệu có đưa ra lựa chọn để mirror web sites.
- -g just get files (saved in the current directory)
- -i tiếp tục chạy nếu gặp lỗi interrupted do lỗi không gian đĩa hoặc bị mất mạng (vì sử dụng cache)
- -Y mirror ALL links located in the first level pages (mirror links)
Ví dụ Tham số -W
httrack
[You must be registered and logged in to see this link.] -O /tmp/shoesizes -W
[You must be registered and logged in to see this link.] Ví dụ Tham số -w
httrack
[You must be registered and logged in to see this link.] -O /tmp/shoesizes -w
[You must be registered and logged in to see this link.] Tham số -g
cho phép tải file một cách chính xác có trên địa chỉ URL. Ví dụ sau đây trương trình sẽ hiểu là tải file binary “windrv32.exe” không phải tải file windrv32.html.
httrack -g
[You must be registered and logged in to see this link.]Nếu URL không chỉ định kiểu tệp thì mặc định sử dụng định dạng .html
Do vấn đề bảo mật, web server không cho phép bất kỳ một trương trình nào có thể tải các file sử lý trên server như .asp, .php, .cgi một cách bất hợp pháp.
Tham số -i
tiếp tục thực hiện lại tiến trình tải URL nếu gặp lỗi như do ổ đĩa không còn dung lượng trống hay đột ngột bị mất mạng, bạn nên sử dụng tham số này sẽ rất có ích.
httrack
[You must be registered and logged in to see this link.] -O /tmp/shoesizes -i
Tải tất cả các links chỉ ở level đầu tiên của page URL.
Chỉ tải tất cả các links ở level đầu tiên của URL. Nó rất hữu ích nếu page URL có nhiều external Link mà bạn muốn lấy dữ liệu của chúng.
httrack
[You must be registered and logged in to see this link.] -O /tmp/shoesizes -Y
[You must be registered and logged in to see this link.] Proxy Options
Một số tính năng trên web sử dụng proxy, khi bạn vào website thấy xuất hiện hộp thoại đăng nhập đó là yêu cầu tài khoản proxy.
[You must be registered and logged in to see this link.] Tham số proxy có dạng:
-P proxy:port or -P user:pass@proxy:port
[You must be registered and logged in to see this link.] Proxy anonymizing access
Sử dụng mặc định proxy không yêu cầu user ID và password, thực hiện câu lệnh như ví dụ dưới đây:
httrack
[You must be registered and logged in to see this link.] -O /tmp/shoesizes -P proxy.www.all.net:8080
Trường hợp trên, mình giả sử có dịch vụ proxy
- Code:
-
proxy.www.all.net
, sử dụng port 8080
authorized access proxy
Một số trường hợp proxy có yêu cầu user ID và password để hợp pháp truy cập vào tài nguyên web.
httrack
[You must be registered and logged in to see this link.] -O /tmp/shoesizes -P fc:password@proxy.www.all.net:8080
Ở đây, userID=’fc’ và password=’password’
Ví dụ download tài nguyên từ FTP server FTP là một ví dụ về proxy server, với ftp server thêm vào tham số
- Code:
-
-%f0
. Ví dụ:
httrack
[You must be registered and logged in to see this link.] -O /tmp/shoesizes -%f0
HTTrack không phải là công cụ chuyên dụng để tải ftp files. Tuy nhiên có thể sử dụng httrack có thể tải một file hoặc các tệp trong một folder trên
[You must be registered and logged in to see this link.] Ví dụ:
- Code:
-
ftp://ftp.somesite.com/pub/files/file010.zip
hoặc
- Code:
-
ftp://ftp.somesite.com/pub/files/
.
Limits Options
Giới hạn chiều sâu tìm kiếm URL
Để tránh tải toàn bộ các page của web một cách lãng phí và mất nhiều thời gian chờ đợi, đôi khi bạn đang chỉ cần copy giao diện của 1 page thôi. Điều này rất hữu ích bằng việc sử dụng tham số
- Code:
-
-r
theo sau là mức độ level. Ví dụ sau, sẽ giới hạn độ sâu link tới 5 level.
#5 level
httrack
[You must be registered and logged in to see this link.] -O /tmp/shoesizes -r5
...
Giới hạn số lượng mức
Trên thực tế một website không đến độ sâu 20 level tức link chứa trong link tới 20 lần, giả sử có website như vậy các bạn hãy thử nghĩ nếu có 2 subdirectory trong mỗi directory mà lệnh cho phép tìm tới 50 level như vậy sẽ là 10 tỷ directories ->con số này viễn tưởng gây ra lặp vô hạn (infinite loop) cho httrack. Cách tốt nhất là giới hạn số lượng directories sử dụng tham số
- Code:
-
-m
. Ví dụ giới hạn tổng tối đa 50000000 directories được tải về.
httrack
[You must be registered and logged in to see this link.] -O /tmp/shoesizes -m50000000
Giới hạn dung lượng file .html được tải về
httrack
[You must be registered and logged in to see this link.] -O /tmp/shoesizes -m50000000,100000
Ví dụ trên thiết lập giới hạn kích thước cho .html file là 100,000 bytes. Thêm đối số thứ 2 vào tham số
- Code:
-
-m
bởi dấu phẩy. Tuy nhiên HTML file hiếm khi có dung lượng lớn hơn thế, tuy nhiên trong một vài trường hợp chúng ta sẽ cần dùng.
Giới hạn tổng dung lượng tải về
Nếu ban quan tâm tới dung lượng tải về thì sử dụng tham số
- Code:
-
-M
có thể giới hạn được dung lượng cần tải về tránh phung phí dung lượng ổ đĩa.
httrack
[You must be registered and logged in to see this link.] -O /tmp/shoesizes -M1000000000
Ví dụ trên, giới hạn tới 1 gigabyte
Giới hạn độ sâu external link
Ví dụ sau đây sẽ chỉ tìm tới 5 level cho externel link.
httrack
[You must be registered and logged in to see this link.] -O /tmp/shoesizes %e5
Các lệnh khác xem chi tiết tại:
[You must be registered and logged in to see this link.]Mình vừa liệt kê một số tính năng hay dùng, Ngoài ra còn rất nhiều tham số khác mình chưa có dịp nêu ra ở đây. Nhưng đối với những ai dùng vào việc sao chép giao diện web hay tải web về ổ đĩa để đọc offline thì những lệnh trên đủ để bạn xài rồi.
Website Ripper Copier
[You must be registered and logged in to see this link.]Nếu bạn gặp trục trặc với phần mềm HTTrack Website Copier thì phần mềm Website Ripper Copier dành cho bạn. Không được đánh giá đình đám như phần mềm HTTrack Website Copier nhưng với hỗ trợ của giao diện phần mềm này được khá nhiều người sử dụng.
Chúc bạn thành công.