java簡單網(wǎng)頁抓取的實現(xiàn)方法
本文實例講述了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.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è)計有所幫助。
- JAVA使用爬蟲抓取網(wǎng)站網(wǎng)頁內(nèi)容的方法
- java抓取網(wǎng)頁數(shù)據(jù)獲取網(wǎng)頁中所有的鏈接實例分享
- java正則表達式匹配網(wǎng)頁所有網(wǎng)址和鏈接文字的示例
- Java中使用正則表達式獲取網(wǎng)頁中所有圖片的路徑
- java 抓取網(wǎng)頁內(nèi)容實現(xiàn)代碼
- java抓取網(wǎng)頁數(shù)據(jù)示例
- Java用正則表達式如何讀取網(wǎng)頁內(nèi)容
- java實現(xiàn)網(wǎng)頁解析示例
- 用javascrpt將指定網(wǎng)頁保存為Excel的代碼
- Java獲取任意http網(wǎng)頁源代碼的方法
相關(guān)文章
java并發(fā)編程工具類PriorityBlockingQueue優(yōu)先級隊列
這篇文章主要為大家介紹了java并發(fā)編程工具類PriorityBlockingQueue優(yōu)先級隊列的方法示例應(yīng)用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步2022-03-03IntelliJ IDEA基于SpringBoot如何搭建SSM開發(fā)環(huán)境的步驟詳解
這篇文章主要介紹了IntelliJ IDEA基于SpringBoot如何搭建SSM開發(fā)環(huán)境,本文分步驟通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10JUC并發(fā)編程LinkedBlockingQueue隊列深入分析源碼
LinkedBlockingQueue 是一個可選有界阻塞隊列,這篇文章主要為大家詳細介紹了Java中LinkedBlockingQueue的實現(xiàn)原理與適用場景,感興趣的可以了解一下2023-04-04