Cào theo trình tự thời gian gửi ảnh kiểu như thế này dễ bị trùng ảnh và phải bổ sung một số ảnh ở cuối nếu như danh sách “Last uploads” có thay đổi (chắc chắn sẽ có). Bù lại, nó sẽ nhanh hơn cách tải theo PID. Nhưng khi bổ sung sau lần tải đầu tiên này thì lại nên tải theo PID cho tiện.

#! /bin/sh
# Cào photoworld.com.vn. Cách 1: Tải theo "Last uploads"

d='http://www.photoworld.com.vn';
for i in `seq 0 6415`;
do
	wget "$d"/index.php?name=coppermine\&file=displayimage\&meta=lastup\&cat=0\&pos="$i" -O o.html;
	f=`less o.html |\
	grep 'modules\/coppermine\/albums\/userpics' |\
	sed -r -e "s#^.*src=\"#$d/#"\
		-e 's/" width=".*$//'\
		-e 's#/normal_#/#'`;
	t=`less o.html |\
	grep 'modules\/coppermine\/albums\/userpics' |\
	sed -r -e 's/^.* alt="(.*)/\1/'\
		-e 's/" title="".*/\[NO DESCRIPTIONS\]/'`;
	p=`less o.html |\
	grep 'nowrap>URL:' |\
	sed -r 's#^.*pid=([0-9]+)</a></td></tr>#\1#'`;
	echo "NOW: pos=$i; pid=$p";
	wget -p "$f";
	rm -f o.html;
	echo `date +%F\ %T`" - PID: $p - FILE: $f - DESC: $t" >> log.txt;
done

BỔ SUNG: Cào photo.com.vn

Bên photo.com.vn đòi phải đăng nhập mới cho xem. Định dùng --keep-session-cookies nhưng chẳng hiểu tại sao lại không được. Thôi thì đành đăng kí đại một cái tài khoản rồi dùng Firefox đăng nhập, cuối cùng là lấy cookie của trang này ra riêng một chỗ cho wget--load-cookies. Hơi củ chuối tẹo, nhưng chả biết làm thế nào khác.

#! /bin/sh
# Cào photo.com.vn. Cách 2: Tải theo PID

# Cần chắc chắn là đã đăng nhập bằng Firefox
# và các cookie chưa bị hết hạn

grep 'photo.com.vn' `find ~/.mozilla/firefox/ -name cookies.txt` > ck.txt

d='http://www.photo.com.vn'

for i in `seq 0 26066`;
do
	wget --load-cookies=ck.txt "$d/coppermine/displayimage/cat=0/pid=$i.html" -O o.html
	f=`grep -m 1 'modules\/coppermine\/albums\/userpics' o.html |\
	sed -r -e "s#^.*src=\"#$d/#"\
		-e 's/" width=".*$//'\
		-e 's/normal_//'`;
	if [ $f ]; then
		t=`grep -m 1 'modules\/coppermine\/albums\/userpics' o.html |\
		sed -r -e 's/^.* alt="(.*)/\1/'\
			-e 's/" title="".*/\[NO DESCRIPTIONS\]/'`;
		echo "NOW DOWNLOADING PID: $i";
		wget -p "$f";
	else
		echo "$i is NOT found OR removed!!!";
		f='[ NOT found OR removed ]';
		t='';
	fi
	rm -f o.html;
	echo `date +%F\ %T`" - PID: $i - FILE: $f - DESC: $t" >> log.txt;
done

One thought on “Cào photoworld.com.vn

  1. Ảnh trên photoWORLD Vietnam xấu òm! Trên Vietnam Photography đẹp hơn.

    Mèn, tối nay lại phải dọn ổ cứng đây.

Leave a Reply