欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2014年12月20日 10:32:38   投稿:shichen2014  
這篇文章主要介紹了java簡單網(wǎng)頁抓取的實現(xiàn)方法,詳細分析了與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)上標準資源的地址。

互聯(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的字符串為空或者是不能辨認的協(xié)議

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

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

復制代碼 代碼如下:
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)文章

  • java并發(fā)編程工具類PriorityBlockingQueue優(yōu)先級隊列

    java并發(fā)編程工具類PriorityBlockingQueue優(yōu)先級隊列

    這篇文章主要為大家介紹了java并發(fā)編程工具類PriorityBlockingQueue優(yōu)先級隊列的方法示例應(yīng)用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2022-03-03
  • Nacos負載均衡策略總結(jié)

    Nacos負載均衡策略總結(jié)

    Nacos 作為目前主流的微服務(wù)中間件,包含了兩個頂級的微服務(wù)功能:配置中心和注冊中心,本文給大家總結(jié)了幾種Nacos負載均衡策略,通過圖文結(jié)合介紹的非常詳細,需要的朋友可以參考下
    2023-11-11
  • 初識MyBatis及基本配置和執(zhí)行

    初識MyBatis及基本配置和執(zhí)行

    這篇文章主要介紹了初識MyBatis的基本知識,文中給大家提到了mybatis基本配置和執(zhí)行過程,需要的朋友可以參考下
    2017-11-11
  • Netty粘包拆包及使用原理詳解

    Netty粘包拆包及使用原理詳解

    Netty是由JBOSS提供的一個java開源框架,現(xiàn)為?Github上的獨立項目。Netty提供異步的、事件驅(qū)動的網(wǎng)絡(luò)應(yīng)用程序框架和工具,用以快速開發(fā)高性能、高可靠性的網(wǎng)絡(luò)服務(wù)器和客戶端程序,這篇文章主要介紹了Netty粘包拆包及使用原理
    2022-08-08
  • Spring?Retry實現(xiàn)重試機制的示例詳解

    Spring?Retry實現(xiàn)重試機制的示例詳解

    這篇文章主要為大家詳細介紹了Spring-Retry的用法以及實現(xiàn)原理是怎么樣的,文中的示例代碼講解詳細,具有一定的參考價值,需要的可以了解一下
    2023-07-07
  • ConcurrentHashMap是如何保證線程安全

    ConcurrentHashMap是如何保證線程安全

    大家好,本篇文章主要講的是ConcurrentHashMap是如何保證線程安全,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • IntelliJ IDEA基于SpringBoot如何搭建SSM開發(fā)環(huán)境的步驟詳解

    IntelliJ IDEA基于SpringBoot如何搭建SSM開發(fā)環(huán)境的步驟詳解

    這篇文章主要介紹了IntelliJ IDEA基于SpringBoot如何搭建SSM開發(fā)環(huán)境,本文分步驟通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • JUC并發(fā)編程LinkedBlockingQueue隊列深入分析源碼

    JUC并發(fā)編程LinkedBlockingQueue隊列深入分析源碼

    LinkedBlockingQueue 是一個可選有界阻塞隊列,這篇文章主要為大家詳細介紹了Java中LinkedBlockingQueue的實現(xiàn)原理與適用場景,感興趣的可以了解一下
    2023-04-04
  • java的Arrays工具類實戰(zhàn)

    java的Arrays工具類實戰(zhàn)

    java.util.Arrays類能方便地操作數(shù)組,它提供的所有方法都是靜態(tài)的。Arrays作為一個工具類,能很好的操作數(shù)組。下面介紹主要使用的幾個函數(shù)
    2016-12-12
  • java對于目錄下文件的單詞查找操作代碼實現(xiàn)

    java對于目錄下文件的單詞查找操作代碼實現(xiàn)

    這篇文章主要介紹了java對于目錄下文件的單詞查找操作代碼實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11

最新評論