而某同學對於抓網頁資料這一塊有涉略
所以我正好也學到了 怎麼使用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();
}
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;
}
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;
}
沒有留言:
張貼留言