2013年3月30日 星期六

JAVA Android HttpGet應用、正規表示法

老師配給了一項 Android 有關於匯率的作業

而某同學對於抓網頁資料這一塊有涉略

所以我正好也學到了 怎麼使用HttpGet



//使用HttpGet 去獲得網頁資料,url 我在這邊是放置網頁的網址字串
HttpGet getpage = new HttpGet(url);
//新增CLIENT給HttpGet使用
HttpClient httpClient = new DefaultHttpClient();

try
{
       //使用請求回應的方式去要資料
       HttpResponse response = httpClient.execute(getpage);
       //具片段資料好像200 是正常的,則500是不正常的 來檢測
       if(response.getStatusLine().getStatusCode() == 200)
       {
//將網頁編碼導回utf-8,處理網頁的編碼
String PageTemp = EntityUtils.toString(response.getEntity(), "utf-8");
//切取重點之部分
PageTemp = PageTemp.substring(PageTemp.indexOf("decimal"),PageTemp.indexOf("</center>"));
//設定正規表達式 並傳給func做擷取
ArrayList<String> BotRateList = DivthePageKeys(PageTemp, ">-<|[0-9]*.[0-9][0-9*][0-9*][0-9*][0-9*]");

/*略.......*/
}
}
catch (ClientProtocolException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}

//因為抓取網頁的資料 所以用了正規表示法去篩選網頁的數字

public ArrayList<String> DivthePageKeys(String text, String RegularExpression)
{
ArrayList<String> getnumerical = new ArrayList<String>();
Pattern model = Pattern.compile(RegularExpression);
Matcher match = model.matcher(text);
while(match.find())
{
//取得該"組"所對應到的資料
getnumerical.add(match.group(0));
  }
return getnumerical;
}


沒有留言:

張貼留言