Bọn WorldEbookFair quảng cáo bằng cách bôi ra cái trò “Free Access to the public from July 4th to August 4th, in celebration of Project Gutenberg’s 35th Birthday”. Thôi thì, méo mó có hơn không, ta cứ lôi về, chả mất gì của bọ :p. Làm quả tập lệnh cho khoẻ.
Đầu tiên là tạo danh sách các liên kết cho từng bộ sưu tập:
#!/bin/sh # Will be expired on 4th August 2006 wget http://worldebookfair.com/Collections.htm less Collections.htm |\ grep -e ">http://WorldeBookFair\.com/.*.htm" |\ sed -e 's/^.*href="//g' \ -e 's/\.htm.*$/\.htm/g' \ -e 's/\&/\\\&/g' |\ grep -e "^http.*" | sort | uniq > ALL.txt wget -i ALL.txt sed -r -e 's#http://WorldeBookFair\.com/(.*)\.htm$#\1#g' -i ALL.txt for i in `less ALL.txt`; do less "$i.htm" |\ grep -e "\.\(pdf\|htm\|txt\)" |\ iconv -c |\ sed -r -e 's/^.*href\s?=\s?"//g' \ -e 's/\.(pdf|html?|txt).*$/\.\1/g' \ -e 's/\&/\\\&/g' \ -e 's#http://worldebooklibrary(\.com)?/#http://worldebookfair\.com/#ig' |\ grep -ie "^http://\(www\.\)\?WorldeBookFair" |\ sed -r -e '/\/(Join|Search|Collections)\.htm/d' |\ sort | uniq > "list-$i.txt"; done
Sau đó vẫn là trò truyền thống: Chạy `screen` và chia danh sách ra để tải cho nhanh. Ví dụ:
for i in `less ALL.txt | head -n 5 | tail -n 5`; \ do \ wget -i "list-$i.txt" -P $i; \ cp "$i.htm" "$i/index-of-$i.html"; \ done
Đoạn này sẽ chỉ tải về *.htm
, *.pdf
, *.txt
, không tải *.mp3
, *.wmv
,… Sau một đêm thì được gần 4GB. Chắc là tập lệnh của mình dỏm nên mới ít thế