最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java簡單網(wǎng)頁抓取的實現(xiàn)方法

 更新時間:2014年12月20日 10:32:38   投稿:shichen2014  
這篇文章主要介紹了java簡單網(wǎng)頁抓取的實現(xiàn)方法,詳細(xì)分析了與Java網(wǎng)頁抓取相關(guān)的tcp及URL相關(guān)概念,以及對應(yīng)的類文件原理,具有一定的參考借鑒價值,需要的朋友可以參考下

本文實例講述了java簡單網(wǎng)頁抓取的實現(xiàn)方法。分享給大家供大家參考。具體分析如下:

背景介紹

一 tcp簡介

  1 tcp 實現(xiàn)網(wǎng)絡(luò)中點對點的傳輸

  2 傳輸是通過ports和sockets

  ports提供了不同類型的傳輸(例如 http的port是80)

    1)sockets可以綁定在特定端口上,并且提供傳輸功能

    2)一個port可以連接多個socket

二 URL簡介

URL 是對可以從互聯(lián)網(wǎng)上得到的資源的位置和訪問方法的一種簡潔的表示,是互聯(lián)網(wǎng)上標(biāo)準(zhǔn)資源的地址。

互聯(lián)網(wǎng)上的每個文件都有一個唯一的URL,它包含的信息指出文件的位置以及瀏覽器應(yīng)該怎么處理它。

綜上,我們要抓取網(wǎng)頁的內(nèi)容實質(zhì)上就是通過url來抓取網(wǎng)頁內(nèi)容。

Java提供了兩種方法:

一種是直接從URL讀取網(wǎng)頁

一種是通過 URLConnection來讀取網(wǎng)頁

其中的URLConnection是以http為核心的類,提供了很多關(guān)于連接http的函數(shù)

本文將給出基于URLConnection的實例代碼。

在此之前我們先來看下關(guān)于url的異常。不了解java異常機制的請參看上一篇博文。

構(gòu)造URL的異常MalformedURLException產(chǎn)生條件:url的字符串為空或者是不能辨認(rèn)的協(xié)議

建立 URLConnection的異常 IOException產(chǎn)生條件: openConnection失敗,注意openConnection時 代碼還未連接遠程,只是為連接遠程做準(zhǔn)備

綜上所述,最終代碼如下:

復(fù)制代碼 代碼如下:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

public class SimpleNetSpider {

    public static void main(String[] args) {

        try{
            URL u = new URL("http://docs.oracle.com/javase/tutorial/networking/urls/");
            URLConnection connection = u.openConnection();
            HttpURLConnection htCon = (HttpURLConnection) connection;
            int code = htCon.getResponseCode();
            if (code == HttpURLConnection.HTTP_OK)
            {
                System.out.println("find the website");
                BufferedReader in=new BufferedReader(new InputStreamReader(htCon.getInputStream()));
                String inputLine;
                while ((inputLine = in.readLine()) != null)
                        System.out.println(inputLine);
                    in.close();
            }
            else
            {
                System.out.println("Can not access the website");
            }
        }
        catch(MalformedURLException e )
        { 
            System.out.println("Wrong URL");
        }
        catch(IOException e)
        {
            System.out.println("Can not connect");
        }
    }
}

希望本文所述對大家的Java程序設(shè)計有所幫助。

相關(guān)文章

  • 關(guān)于阿里巴巴TransmittableThreadLocal使用解讀

    關(guān)于阿里巴巴TransmittableThreadLocal使用解讀

    文章主要介紹了三種ThreadLocal的使用:ThreadLocal、InheritableThreadLocal和TransmittableThreadLocal,ThreadLocal和InheritableThreadLocal在單線程和部分情況下可以正常工作,但TransmittableThreadLocal在處理線程池時表現(xiàn)更佳
    2025-02-02
  • spring boot2.0圖片上傳至本地或服務(wù)器并配置虛擬路徑的方法

    spring boot2.0圖片上傳至本地或服務(wù)器并配置虛擬路徑的方法

    最近寫了關(guān)于圖片上傳至本地文件夾或服務(wù)器,上傳路徑到數(shù)據(jù)庫,并在上傳時預(yù)覽圖片。本文通過實例代碼給大家分享spring boot2.0圖片上傳至本地或服務(wù)器并配置虛擬路徑的方法,需要的朋友參考下
    2018-12-12
  • Java面試之限流的實現(xiàn)方式小結(jié)

    Java面試之限流的實現(xiàn)方式小結(jié)

    限流是指在各種應(yīng)用場景中,通過技術(shù)和策略手段對數(shù)據(jù)流量、請求頻率或資源消耗進行有計劃的限制,本文為大家整理了常見的限流的實現(xiàn)方式,有需要的可以參考下
    2024-02-02
  • 淺談Java生命周期管理機制

    淺談Java生命周期管理機制

    最近有位細(xì)心的朋友在閱讀筆者的文章時,對java類的生命周期問題有一些疑惑,筆者打開百度搜了一下相關(guān)的問題,看到網(wǎng)上的資料很少有把這個問題講明白的,主要是因為目前國內(nèi)java方面的教材大多只是告訴你“怎樣做”,但至于“為什么這樣做”卻不多說
    2016-01-01
  • 基于list stream: reduce的使用實例

    基于list stream: reduce的使用實例

    這篇文章主要介紹了list stream: reduce的使用實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • java金額數(shù)字轉(zhuǎn)中文工具類詳解

    java金額數(shù)字轉(zhuǎn)中文工具類詳解

    這篇文章主要為大家詳細(xì)介紹了java金額數(shù)字轉(zhuǎn)中文工具類的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • springboot之SpringApplication生命周期和事件機制解讀

    springboot之SpringApplication生命周期和事件機制解讀

    這篇文章主要介紹了springboot之SpringApplication生命周期和事件機制,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • 關(guān)于java中線程安全問題詳解

    關(guān)于java中線程安全問題詳解

    最近工作中遇到不少多線程問題,但自己一直對多線程的理解比較表層,所以深入研究了一番,下面這篇文章主要給大家介紹了關(guān)于java中線程安全問題的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • Spring web集成rabbitmq代碼實例

    Spring web集成rabbitmq代碼實例

    這篇文章主要介紹了Spring web集成rabbitmq代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • Java Spring之@Async原理案例詳解

    Java Spring之@Async原理案例詳解

    這篇文章主要介紹了Java Spring之@Async原理案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09

最新評論

天峻县| 五华县| 庆云县| 新营市| 沙田区| 新兴县| 平邑县| 夏河县| 绵竹市| 天台县| 那坡县| 丹东市| 龙泉市| 岫岩| 靖边县| 上蔡县| 确山县| 元朗区| 福建省| 平遥县| 玛多县| 蛟河市| 石渠县| 城步| 交口县| 平乐县| 长兴县| 虹口区| 樟树市| 巴中市| 仁怀市| 遵义市| 扶绥县| 米脂县| 宣汉县| 锡林郭勒盟| 永善县| 正蓝旗| 贵南县| 石阡县| 梅河口市|