java抓取網頁數據實現下載(java如何爬取網頁數據)

本文目錄一覽:

怎麼用java寫網絡爬蟲將網頁中的指定數據下載到本地excel文檔中

mport java.io.InputStream;

        import java.net.*;

        public class HelloHttp {

        }

        接著就可以仿照下列範例建立HTTP連線:

        URL url = new URL(“”);

        HttpURLConnection http = (HttpURLConnection) url.openConnection();

        http.setRequestMethod(“POST”);

        InputStream input = http.getInputStream();

        http.disconnect();

    第1行建立一個URL物件,帶入參數為想要建立HTTP連線的目的地,例如網站的網址。

    第2行建立一個HttpURLConnection物件,並利用URL的openConnection()來建立連線。

    第3行利用setRequestMethod()來設定連線的方式,一般分為POST及GET兩種。

    第4行將連線取得的回應載入到一個InputStream中,然後就可以將InputStream的內容取出應用,以這個例子而言我們取得的會是網頁的原始碼。

    第5行用disconnect()將連線關閉。 

       將InputStream內容取出應用的範例如下:

        byte[] data = new byte[1024];

        int idx = input.read(data);

        String str = new String(data, 0, idx);

        System.out.println(str);

        input.close(); 

        針對 str 作 regular expression 處理 , 依照需求取得內容。

java jsoup怎樣爬取特定網頁內的數據

1、Jsoup簡述

Java中支持的爬蟲框架有很多,比如WebMagic、Spider、Jsoup等。

Jsoup擁有十分方便的api來處理html文檔,比如參考了DOM對象的文檔遍歷方法,參考了CSS選擇器的用法等等,因此我們可以使用Jsoup快速地掌握爬取頁面數據的技巧。

2、快速開始

1)分析HTML頁面,明確哪些數據是需要抓取的

2)使用HttpClient讀取HTML頁面

HttpClient是一個處理Http協議數據的工具,使用它可以將HTML頁面作為輸入流讀進java程序中.

3)使用Jsoup解析html字符串

通過引入Jsoup工具,直接調用parse方法來解析一個描述html頁面內容的字符串來獲得一個Document對象。該Document對象以操作DOM樹的方式來獲得html頁面上指定的內容。

3、保存爬取的頁面數據

1)保存普通數據到數據庫中

將爬取的數據封裝進實體Bean中,並存到數據庫內。

2)保存圖片到服務器上

直接通過下載圖片的方式將圖片保存到服務器本地。

如何通過Java代碼實現對網頁數據進行指定抓取

通過Java代碼實現對網頁數據進行指定抓取方法思路如下:

在工程中導入Jsoup.jar包

獲取網址url指定HTML或者文檔指定的body

獲取網頁中超鏈接的標題和鏈接

獲取指定博客文章的內容

獲取網頁中超鏈接的標題和鏈接的結果

java爬蟲抓取指定數據

根據java網絡編程相關的內容,使用jdk提供的相關類可以得到url對應網頁的html頁面代碼。

針對得到的html代碼,通過使用正則表達式即可得到我們想要的內容。

比如,我們如果想得到一個網頁上所有包括“java”關鍵字的文本內容,就可以逐行對網頁代碼進行正則表達式的匹配。最後達到去除html標籤和不相關的內容,只得到包括“java”這個關鍵字的內容的效果。

從網頁上爬取圖片的流程和爬取內容的流程基本相同,但是爬取圖片的步驟會多一步。

需要先用img標籤的正則表達式匹配獲取到img標籤,再用src屬性的正則表達式獲取這個img標籤中的src屬性的圖片url,然後再通過緩衝輸入流對象讀取到這個圖片url的圖片信息,配合文件輸出流將讀到的圖片信息寫入到本地即可。

如何用java語言直接從web上下載數據,從而省去在網頁上手動點擊下載?

URL url = new URL(“”);

URLConnection uc = url.openConnection();

InputStreamReader is = new InputStreamReader(uc.getInputStream());

int line;

StringBuffer sb = new StringBuffer(“”);

while((line=is.read())!=-1){

sb.append((char)line);

}

String str = sb.toString();

//解析其中的內容

//可以通過 找到有用的地址文件,然後利用如下

url = new URL(“有用的文件路徑”);

BufferedInputStream in = new BufferedInputStream(url.openStream());

哈哈,得到它了,一切就ok啦

下面的會了嗎,流操作,寫到本地

原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/129911.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
簡單一點的頭像簡單一點
上一篇 2024-10-03 23:27
下一篇 2024-10-03 23:27

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Python讀取CSV數據畫散點圖

    本文將從以下方面詳細闡述Python讀取CSV文件並畫出散點圖的方法: 一、CSV文件介紹 CSV(Comma-Separated Values)即逗號分隔值,是一種存儲表格數據的…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Python中讀入csv文件數據的方法用法介紹

    csv是一種常見的數據格式,通常用於存儲小型數據集。Python作為一種廣泛流行的編程語言,內置了許多操作csv文件的庫。本文將從多個方面詳細介紹Python讀入csv文件的方法。…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29

發表回復

登錄後才能評論