Niushop3.0電商系統,性價比之王!開牛店的第一選擇!
在用wget抓取數據的時候,有的時候需要用戶登錄才能進行。這種情況下就需要時用cookie.
先看下面的代碼:
wget --load-cookies cookies.txt --save-cookies cookies.txt --keep-session-cookies -O output/login.html --post-data "username=NNNNNNNNNNN&password=MMMMMMMMMMM" http://www.xxxxxxxxxxxxxx.org/login
wget --load-cookies cookies.txt --save-cookies cookies.txt --keep-session-cookies -O output/directory-list.html "http://www.xxxxxxxxxxxxxxx.org/list?category=resturants&page=1"
第一個操作,就是先獲得一個cookie,用來登陸並保存此session,然后在后面的抓數據的過程中使用此session和cookie.
注意:
http://www.xxxxxxxxxxxxxx.org/login要換成對應的登陸頁面的url
--post-data "username=NNNNNNNNNNN&password=MMMMMMMMMMM" post數據里面的參數要根據登陸頁面里面對應的參數設定。
第二個操作,就是用上面的cookie去驗證用戶,並取得一個有效的連接,進而去取得數據。
--load-cookies 就是載入你上一個操作所取得的cookie.
在抓取數據的時候,我自己用了一個腳本,如下,以供參考:
get --load-cookies cookies.txt --save-cookies cookies.txt --keep-session-cookies -O login.html --post-data "username=xxxxxxxxxx&password=11111111111111111" http://www.mmmmmmmmmmmmmmmmmm.mmmmmmmmm/login
for i in {1..89}
do
for j in {1..20}
do
echo i=$i -- j=$j
echo "wget --load-cookies cookies.txt --save-cookies cookies.txt --keep-session-cookies -O $i-$j.html 'http://www.ccccccccccccccc.ccccccccccc/directory/resturant/list?keyword=&class=$i&page=$j'"
wget --no-dns-cache --no-cache --load-cookies cookies.txt --save-cookies cookies.txt --keep-session-cookies -O $i-$j.html "http://www.qqqqqqqqq.xxxxxxxxx/directory/bar/list?keyword=&class=$i&page=$j"
done