java新聞采集源代碼 java新聞管理系統(tǒng) 開(kāi)源

怎樣用Java實(shí)現(xiàn)網(wǎng)站數(shù)據(jù)采集.txt

可以使用HttpClient讀取網(wǎng)頁(yè)的內(nèi)容

創(chuàng)新互聯(lián)公司是專業(yè)的永平網(wǎng)站建設(shè)公司,永平接單;提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行永平網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

整個(gè)過(guò)程分為六步

創(chuàng)建 HttpClient 的實(shí)例

2. 創(chuàng)建某種連接方法的實(shí)例,在這里是 GetMethod。在 GetMethod 的構(gòu)造函數(shù)中傳入待連接的地址

3. 調(diào)用第一步中創(chuàng)建好的實(shí)例的 execute 方法來(lái)執(zhí)行第二步中創(chuàng)建好的 method 實(shí)例

4. 讀 response

5. 釋放連接。無(wú)論執(zhí)行方法是否成功,都必須釋放連接

6. 對(duì)得到后的內(nèi)容進(jìn)行處理

實(shí)現(xiàn)如下:

import java.io.IOException;

import org.apache點(diǎn)抗 mons.httpclient.*;

import org.apache點(diǎn)抗 mons.httpclient.methods.GetMethod;

import org.apache點(diǎn)抗 mons.httpclient.params.HttpMethodParams;

public class HttpClientTest...{

public static void main(String[] args) {

//構(gòu)造HttpClient的實(shí)例

HttpClient httpClient = new HttpClient();

//創(chuàng)建GET方法的實(shí)例

GetMethod getMethod = new GetMethod("");

//使用系統(tǒng)提供的默認(rèn)的恢復(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é)議不對(duì)或者返回的內(nèi)容有問(wèn)題

System.out.println("Please check your provided http address!");

e.printStackTrace();

} catch (IOException e) {

//發(fā)生網(wǎng)絡(luò)異常

e.printStackTrace();

} finally {

//釋放連接

getMethod.releaseConnection();

}

}

}

這樣得到的是頁(yè)面的源代碼,再進(jìn)行處理

求使用java語(yǔ)言抓取sina,搜狐網(wǎng)站上的新聞資訊的源碼,或者原理說(shuō)明也可~

下載一個(gè)jsoup包,并導(dǎo)入到項(xiàng)目里面。然后就可以很簡(jiǎn)便地編寫(xiě)爬蟲(chóng)了。

jsoup教程:

及jsoup中文版標(biāo)準(zhǔn)使用手冊(cè):、

網(wǎng)上還有大量jsoup教程,使用中可能涉及到 正則表達(dá)式,這里推薦一個(gè)講解正則表達(dá)式基本操作的:

除此之外,還要考慮數(shù)據(jù)保存。你需要建立一個(gè)數(shù)據(jù)庫(kù),比如MySQL,然后將數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)里面。這個(gè)過(guò)程可能比較困難。推薦網(wǎng)址:,上面有4個(gè)相關(guān)鏈接很有用。(其實(shí)上面講解了抓取的全過(guò)程,含較完整的源代碼。作者似乎沒(méi)有使用jsoup,使用jsoup可以節(jié)省很多代碼,比如截取某個(gè)標(biāo)簽后面的內(nèi)容,使用jsoup包后一行代碼就可以搞定)

最后將數(shù)據(jù)導(dǎo)出到word或execl里,可以使用工具Navicat ,網(wǎng)上很多綠色版,不用安裝。

Java訪問(wèn)指定URL并獲取網(wǎng)頁(yè)源代碼

1.編寫(xiě)useSourceViewer 類的基本框架,該類僅包括無(wú)返回值的main ()方法,該方法從參數(shù)中獲取URL,通過(guò)輸入緩沖和輸出緩沖將該URL 原碼輸出。

2.編寫(xiě)useSourceViewer 類,代碼如下:

import java點(diǎn)虐 .*;

import java.io.*;

public class useSourceViewer

{

public static void main (String[] args)

{

if (args.length 0)

{

try

{

//讀入U(xiǎn)RL

URL u = new URL(args[0]);

InputStream in = u.openStream( );

// 為增加性能存儲(chǔ)輸入流

in = new BufferedInputStream(in);

// 將輸入流連接到閱讀器

Reader r = new InputStreamReader(in);

int c;

while ((c = r.read( )) != -1)

{

System.out.print((char) c);

}

Object o = u.getContent( );

System.out.println("I got a " + o.getClass().getName( ));

}

catch (MalformedURLException e)

{

System.err.println(args[0] + " is not a parseable URL");

}

catch (IOException e)

{

System.err.println(e);

}

} // end if

} // end main

} // end SourceViewer}

文章名稱:java新聞采集源代碼 java新聞管理系統(tǒng) 開(kāi)源
轉(zhuǎn)載來(lái)于:http://muchs.cn/article24/ddigsje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、微信小程序、網(wǎng)站排名、企業(yè)建站、網(wǎng)站建設(shè)外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管