因某人需要國家國旗的資料庫,所以寫了一支簡單的parser,除了PostMethod之外,還可以使用GetMethod,曾遇到過PostMethod抓不了,改用GetMethod就可以
因為只有要抓一次而已,所以寫的很簡略,沒有做太多連線的判斷
需commons-codes.jar、commons-httpclient.jar、commons-io.jar、commons-logging.jar、commons-lang.jar
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.lang.StringUtils;
private void parserWeb(){
String url = ""; //要擷取的網址
HttpClient client = new HttpClient();
PostMethod method = null;
try{
method = new PostMethod(url);
method.setRequestHeader("Content-type","text/xml; charset=utf-8");
client.executeMethod(method);
if(method.getStatusCode() == HttpStatus.SC_OK){
//抓回來的原始檔字串,除了傳回字串外,也有傳回Stream及byte[],依需要而不同囉
String s = method.getResponseBodyAsString();
// TODO 這裡就開始做parser的動作啦!這次的重點在於如何使用HttpClient,所以解字串動作就不說了,可以用substring + indexOf將字串拆解,也可以使用正規表示式來取得想要的資料
}
}catch(Exception e){
e.printStackTrace();
}finally{
//利用完後,記得要關閉連線
if (method != null) {
method.releaseConnection();
}
}
}
- Oct 29 Mon 2007 10:02
抓取網站資料(Parser)
全站熱搜
留言列表