背景介紹
一 tcp簡介
1 tcp 實現網絡中點對點的傳輸
2 傳輸是通過ports和sockets
ports提供了不同類型的傳輸(例如 http的port是80)
1)sockets可以綁定在特定端口上,并且提供傳輸功能
2)一個port可以連接多個socket
二 URL簡介
URL 是對可以從互聯網上得到的資源的位置和訪問方法的一種簡潔的表示,是互聯網上標準資源的地址。
互聯網上的每個文件都有一個唯一的URL,它包含的信息指出文件的位置以及瀏覽器應該怎么處理它。
綜上,我們要抓取網頁的內容實質上就是通過url來抓取網頁內容。
Java提供了兩種方法:
一種是直接從URL讀取網頁
一種是通過 URLConnection來讀取網頁
其中的URLConnection是以http為核心的類,提供了很多關于連接http的函數
本文將給出基于URLConnection的實例代碼。
在此之前我們先來看下關于url的異常。不了解java異常機制的請參看上一篇博文。
構造URL的異常MalformedURLException產生條件:url的字符串為空或者是不能辨認的協議
建立URLConnection的異常 IOException產生條件: 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.access the website"); } } catch(MalformedURLException e ) { System.out.println("Wrong URL"); } catch(IOException e) { System.out.println("Can not connect"); } }}
參考文獻:
http://docs.oracle.com/javase/tutorial/networking/urls/index.html
新聞熱點
疑難解答