Java網(wǎng)頁數(shù)據(jù)采集器例子如下:

成都創(chuàng)新互聯(lián)公司成立與2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都做網(wǎng)站、成都網(wǎng)站制作網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元隨州做網(wǎng)站,已為上家服務(wù),為隨州各地企業(yè)和個人服務(wù),聯(lián)系電話:18982081108
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Group 類 用于匹配和抓取 html頁面的數(shù)據(jù)
*/
public class Group {
public static void main(String[] args) {
// Pattern 用于編譯正則 這里用到了3個正則 分別用括號()包住
// 第1個正則用于匹配URL 當(dāng)然這里的正則不一定準(zhǔn)確 這個匹配URL的正則就是錯誤的 只是在這里剛好能匹配出來
// 第2個正則是用于匹配標(biāo)題 SoFlash的
// 第3個正則用于匹配日期
/* 這里只用了一條語句便把url,標(biāo)題和日期全部給匹配出來了 */
Pattern p = Pattern
.compile("='(\\w.+)'(\\w.+[a-zA-Z])-(\\d{1,2}\\.\\d{1,2}\\.\\d{4})");
String s = "a href=''SoFlash-12.22.2011/a";
Matcher m = p.matcher(s);
while (m.find()) {
// 通過調(diào)用group()方法里的索引 將url,標(biāo)題和日期全部給打印出來
System.out.println("打印出url鏈接:" + m.group(1));
System.out.println("打印出標(biāo)題:" + m.group(2));
System.out.println("打印出日期:" + m.group(3));
System.out.println();
}
System.out.println("group方法捕獲的數(shù)據(jù)個數(shù):" + m.groupCount() + "個");
}
}
下輸出結(jié)果:
打印出url鏈接:
打印出標(biāo)題:SoFlash
打印出日期:12.22.2011
group方法捕獲的數(shù)據(jù)個數(shù):3個
如果代碼能力不是很好的話可以借助一些軟件去抓取新聞的字段
把數(shù)據(jù)抓取下來以后可以選擇存入數(shù)據(jù)庫當(dāng)中
需要去重的話,在Java的集合框架中就有HashSet和HashMap可以對數(shù)據(jù)去重
使用帶Hash的集合時一定要注意,如果是存放自定義的對象一定要重寫equals方法和HashCode方法
String urlStr = ""; // 網(wǎng)址
try {
//創(chuàng)建一個url對象來指向要采集信息的網(wǎng)址
URL url = new URL(urlStr);
//將讀取到的字節(jié)轉(zhuǎn)化為字符
InputStreamReader inStrRead = new InputStreamReader(url.openStream(),"utf-8");
//讀取InputStreamReader轉(zhuǎn)化成的字符
BufferedReader bufRead = new BufferedReader(inStrRead);
//讀到的內(nèi)容不為空
while (bufRead.readLine() != null) {
System.out.println(bufRead.readLine());
}
bufRead.close();
} catch (IOException e) {
e.printStackTrace();
}
可以使用HttpClient讀取網(wǎng)頁的內(nèi)容
整個過程分為六步
創(chuàng)建 HttpClient 的實例
2. 創(chuàng)建某種連接方法的實例,在這里是 GetMethod。在 GetMethod 的構(gòu)造函數(shù)中傳入待連接的地址
3. 調(diào)用第一步中創(chuàng)建好的實例的 execute 方法來執(zhí)行第二步中創(chuàng)建好的 method 實例
4. 讀 response
5. 釋放連接。無論執(zhí)行方法是否成功,都必須釋放連接
6. 對得到后的內(nèi)容進行處理
實現(xiàn)如下:
import java.io.IOException;
import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
public class HttpClientTest...{
public static void main(String[] args) {
//構(gòu)造HttpClient的實例
HttpClient httpClient = new HttpClient();
//創(chuàng)建GET方法的實例
GetMethod getMethod = new GetMethod("");
//使用系統(tǒng)提供的默認的恢復(fù)策略
getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
new DefaultHttpMethodRetryHandler());
try {
//執(zhí)行g(shù)etMethod
int statusCode = httpClient.executeMethod(getMethod);
if (statusCode != HttpStatus.SC_OK) {
System.err.println("Method failed: "
+ getMethod.getStatusLine());
}
//讀取內(nèi)容
byte[] responseBody = getMethod.getResponseBoy();
//處理內(nèi)容
System.out.println(new String(responseBody));
} catch (HttpException e) {
//發(fā)生異常,可能是協(xié)議不對或者返回的內(nèi)容有問題
System.out.println("Please check your provided http address!");
e.printStackTrace();
} catch (IOException e) {
//發(fā)生網(wǎng)絡(luò)異常
e.printStackTrace();
} finally {
//釋放連接
getMethod.releaseConnection();
}
}
}
這樣得到的是頁面的源代碼,再進行處理
java數(shù)據(jù)采集系統(tǒng)可以的。Java采集程序優(yōu)點:可對采集過程實現(xiàn)精細控制。
本文題目:java代碼采集 采集器代碼
URL地址:http://chinadenli.net/article6/hiphog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、做網(wǎng)站、品牌網(wǎng)站建設(shè)、用戶體驗、云服務(wù)器、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)