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

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