Ads 468x60px

##EasyReadMore##

30 3月, 2011

[工具] 使用wget拿到網站隱藏資料

最近工作上常用到wget來抓網頁資料
後來發覺他不只能抓資料
還可以傳送POST的data
所以可以偽裝post封包去取得隱藏的網站檔案

例如
set url "http://dfktv2.com/getJson.php"
set useragent "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.151 Safari/534.16"
set type "application/x-www-form-urlencoded"
set text "%5Fmethod=POST&option=artist"

wget -q  -O $::list_path --user-agent=\"$useragent\" --post-data=$text $url

$text 就是要偽裝的資料

所以很輕易的就可以拿到此網站的歌手清單了

下面為wget的基本用法:

常用範例:
[user@Fedora11 ~]#wget -c -nd -np -k http://a.b.c.d/11/22/34.iso
[user@Fedora11 ~]#wget -c -r -nd -np -k -L -p -A c,h www.xxx.org/pub/path/
根據需要選擇用下面的參數:
[user@Fedora11 ~]#wget -c -r -nd -np -k -L -p -A c,h http://a.b.c.d/11/22/
-c 斷點續傳
-c 指定斷點續傳功能。實際上,wget默認具有斷點續傳功能,只有當你使用別
的ftp工具下載了某一文件的一部分,並希望wget接著完成此 工作的時候,才需要
指定此參數。
-r 遞歸下載,下載指定網頁某一目錄下(包括子目錄)的所有文件
-r 遞歸;對HTTP主機,wget首先下載URL指定的文件,然(如果該文件是
一個HTML文檔的話)遞歸下載該文件所引用(超級連接)的所有文件(遞歸深度
由參數-l指定)。對FTP主機,該參數意味著要下載URL指定的目錄中的所有文件,
遞歸方法與HTTP主機類似。
-nd 遞歸下載時不創建一層一層的目錄,把所有的文件下載到當前目錄
-np 遞歸下載時不搜索上層目錄,如 wget -c -r http://a.b.c.d/11/22/ 或 wget -c -r www.xxx.org/pub/path/
沒有加參數-np,就會同時下載22或path的上一級目錄11或pub下的其它文件
-N 時間戳:該參數指定wget只下載更新的文件,也就是說,與本地目錄中的對
應文件的長度和最修改日期一樣的文件將不被下載。
-m 鏡像:相當同時使用-r和-N參數。
-l 設置遞歸級數;默認為5。-l1相當不遞歸;-l0為無窮遞歸;注意,當遞
歸深度增加時,文件數量將呈指數級增長。
-t 設置重試次數。當連接中斷(或超時)時,wget將試圖重新連接。如果指
定-t0,則重試次數設為無窮多。
-k 將絕對鏈接轉為相對鏈接,下載整個站點後脫機瀏覽網頁,最好加上這個參數
-L 遞歸時不進入其它主機,如wget -c -r http://a.b.c.d/ 或 wget -c -r www.xxx.org/ 如果網站內有一個這樣的鏈接:
www.11.22 或 www.yyy.org,不加參數-L,就會遞歸下載www.11.22 或 www.yyy.org 整個網站
-X 在下載FTP主機上的文件時,排除若幹指定的目錄
-p 下載網頁所需的所有文件,如圖片等...
-b 丟到背景執行。
-A 指定要下載的文件樣式列表,多個樣式用逗號分隔
-i 後面跟一個文件,文件內指明要下載的URL
-o : output file
-P : 指定下載到本機的存放目錄
另外,下面參數用設置wget的工作界面:
-v    設置wget輸出詳細的工作信息。
-q    設置wget不輸出任何信息。
另外一些使用頻率稍低的參數如下:
-A acclist / -R rejlist:
這兩個參數用指定wget接受或排除的文件擴展名,多個名稱之間用逗號隔開。例如,
假設我們不想下載MPEG視頻影像文件和.AU聲音文件,可使用如下參數:
-R mpg,mpeg,au
範例
getWebFoder.bat
--------------------------------------------------------------------------------
for /f %%i in ('udate +%%Y%%m%%d_%%H%%M%%S') do set dati=%%i
mkdir "%tmp%\%dati%"
cd /d "%tmp%\%dati%"
wget -c -r -nd -np -k -L -p http://www.study-area.org/tips/vim/index.html

wget -m -l4 -t0 http://oneweb.com.cn/
將在本地硬盤建立http://oneweb.com.cn/的鏡像,鏡像文件存入當前目錄下一個名為
oneweb.com.cn的子目錄中(你也可以使用 -nH參數指定不建立該子目錄,而直接在當前
目錄下建立鏡像的目錄結構),遞歸深度為4,重試次數為無窮(若連接出現問題,
wget將堅韌不拔地永遠重試下去,知道任務完成!)

抓取網站上某一個檔案,如下:
wget -c http://xxx.ooo.com.tw/KKK.iso
抓 ftp,如下:
wget ftp://ftp.nsysu.edu.tw/
需要帳號密碼的站台,如下:
wget ftp://帳號:密碼@ftp.xxx.ooo.tw/
需要特殊埠號(Port)的站台,如下:
wget ftp://帳號:密碼@ftp.xxx.ooo.tw:埠號/

至其他的參數,可參考wget的man手冊頁,命令為:
    man wget
==============================
Wget 的用法
-V 版本信息
-h 幫助信息
-b 後台執行Wget
-o filename 把記錄放在文件filename
-a filename 把記錄附加在文件filename
-d 顯示調試信息
-q 無輸出下載方式
-v 詳細的屏幕輸出(默認)
-nv 簡單的屏幕輸出
-i inputfiles 從文本文件內讀取地址列表
-F forcehtml 從html文件內讀取地址列表
-t number number次重試下載(0時為無限次)
-O output document file 寫文件到文件
-nc 不覆蓋已有的文件
-c 斷點下傳
-N 時間時間戳。該參數指定wget只下載更新的文件,也就是說,與本地目錄中的對應文件的長度和最後修改日期一樣的文件將不被下載。
-S 顯示服務器響應
-T timeout 超時時間設置(單位秒)
-w time 重試延時(單位秒)
-Y proxy=on/off 是否打開代理
-Q quota=number 重試次數
目錄:
-nd --no-directories 不建立目錄.
-x, --force-directories 強制進行目錄建立的工作.
-nH, --no-host-directories 不建立主機的目錄.
-P, --directory-prefix=PREFIX 把檔案存到 PREFIX/...
--cut-dirs=NUMBER 忽略 NUMBER 個遠端的目錄元件.
HTTP 選項:
--http-user=USER 設 http 使用者為 USER.
--http0passwd=PASS 設 http 使用者的密碼為 PASS.
-C, --cache=on/off 提供/關閉快取伺服器資料 (正常情況為提供).
--ignore-length 忽略 `Content-Length' 標頭欄位.
--proxy-user=USER 設 USER 為 Proxy 使用者名稱.
--proxy-passwd=PASS 設 PASS 為 Proxy 密碼.
-s, --save-headers 儲存 HTTP 標頭成為檔案.
-U, --user-agent=AGENT 使用 AGENT 取代 Wget/VERSION 作為識別代號.
FTP 選項:
--retr-symlinks 取回 FTP 的象徵連結.
-g, --glob=on/off turn file name globbing on ot off.
--passive-ftp 使用 "passive" 傳輸模式.
使用遞迴方式的取回:
-r, --recursive 像是吸入 web 的取回 -- 請小心使用!.
-l, --level=NUMBER 遞迴層次的最大值 (0 不限制).
--delete-after 刪除下載完畢的檔案.
-k, --convert-links 改變沒有關連的連結成為有關連.
-m, --mirror 開啟適合用來映射的選項.
-nr, --dont-remove-listing 不要移除 `.listing' 檔.
遞迴式作業的允許與拒絕選項:
-A, --accept=LIST 允許的擴充項目的列表
. -R, --reject=LIST 拒絕的擴充項目的列表.
-D, --domains=LIST 允許的網域列表.
--exclude-domains=LIST 拒絕的網域列表 (使用逗號來分隔).
-L, --relative 只跟隨關聯連結前進.
--follow-ftp 跟隨 HTML 文件裡面的 FTP 連結.
-H, --span-hosts 當開始遞迴時便到外面的主機.
-I, --include-directories=LIST 允許的目錄列表.
-X, --exclude-directories=LIST 排除的目錄列表.
-nh, --no-host-lookup 不透過 DNS 查尋主機.
-np, --no-parent 不追溯到起源目錄.
wget -t0 -c -nH -np -b -m -P /localdir http://example.com/mirrors/ftp.redhat.com -o wget.log

0 意見:

張貼留言

 
Blogger Templates