wget抓取數據,需要用戶登錄驗證


 

 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

 

 Niushop3.0電商系統,性價比之王!開牛店的第一選擇!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM