wget getPostInWeb

wget好強大啊

這段時間需要用wget做一些事情,主要是抓取網頁的數據工作,發現wget還是很強大的。下面是一些應用場景:

1. 簡單頁面的抓取

wget的最基本用法

wget http://domain.com/path/simple_page.html

2. 添加自己的head

有些網站或者頁面,需要額外的認證,所以需要添加額外的HTTP Header,使用方法:

wget –header="MyHeader: head_value" http://domain.com/path/page/need_header.php

3. 偽裝成瀏覽器

有些網站,例如facebook,會檢測請求方式是否是瀏覽器,如果不是正常的瀏覽器,那麼會redirect到一個"incompatible browser"的錯誤頁面。這時候需要wget偽裝成一個瀏覽器(我是Mozilla Firefox!):

wget –user-agent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 (.NET CLR 3.5.30729)" http:/ /domain.com/path/page/check_user_agent.php

4. post數據到某個頁面

wget不光可以用get方式請求網頁,還可以post data的,那樣就可以實現自動註冊、自動登錄了(有驗證碼的頁面除外。。。。)

wget –post-data="user=user1&pass=pass1&submit=Login" http://domain.com/login.php

5. 訪問需要登錄的頁面

有些頁面的訪問需要登錄,訪問的時候需要傳遞cookie,這時候就需要和上面提到的post方式結合。一般過程是:post用戶名和密碼登錄、保存cookie,然後訪問頁面時附帶上cookie。

wget –post-data="user=user1&pass=pass1&submit=Login" –save-cookies=cookie.txt –keep-session-cookies http://domain.com/login.php

wget –load-cookies=cookie.txt http://domain.com/path/page_need_login.php

暫時就探索到這些,以後有什麼新的用法,繼續補充。