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)上標(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)備
綜上所述,最終代碼如下:
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)文章
關(guān)于阿里巴巴TransmittableThreadLocal使用解讀
文章主要介紹了三種ThreadLocal的使用:ThreadLocal、InheritableThreadLocal和TransmittableThreadLocal,ThreadLocal和InheritableThreadLocal在單線程和部分情況下可以正常工作,但TransmittableThreadLocal在處理線程池時表現(xiàn)更佳2025-02-02
spring boot2.0圖片上傳至本地或服務(wù)器并配置虛擬路徑的方法
最近寫了關(guān)于圖片上傳至本地文件夾或服務(wù)器,上傳路徑到數(shù)據(jù)庫,并在上傳時預(yù)覽圖片。本文通過實例代碼給大家分享spring boot2.0圖片上傳至本地或服務(wù)器并配置虛擬路徑的方法,需要的朋友參考下2018-12-12
springboot之SpringApplication生命周期和事件機制解讀
這篇文章主要介紹了springboot之SpringApplication生命周期和事件機制,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06

