JAVA超級(jí)簡(jiǎn)單的爬蟲實(shí)例講解
爬取整個(gè)頁面的數(shù)據(jù),并進(jìn)行有效的提取信息,注釋都有就不廢話了:
public class Reptile {
public static void main(String[] args) {
String url1=""; //傳入你所要爬取的頁面地址
InputStream is=null; //創(chuàng)建輸入流用于讀取流
BufferedReader br=null; //包裝流,加快讀取速度
StringBuffer html=new StringBuffer(); //用來保存讀取頁面的數(shù)據(jù).
String temp=""; //創(chuàng)建臨時(shí)字符串用于保存每一次讀的一行數(shù)據(jù),然后html調(diào)用append方法寫入temp;
try {
URL url2 = new URL(url1); //獲取URL;
is = url2.openStream(); //打開流,準(zhǔn)備開始讀取數(shù)據(jù);
br= new BufferedReader(new InputStreamReader(is)); //將流包裝成字符流,調(diào)用br.readLine()可以提高讀取效率,每次讀取一行;
while ((temp = br.readLine()) != null) {//讀取數(shù)據(jù),調(diào)用br.readLine()方法每次讀取一行數(shù)據(jù),并賦值給temp,如果沒數(shù)據(jù)則值==null,跳出循環(huán);
html.append(temp); //將temp的值追加給html,這里注意的時(shí)String跟StringBuffere的區(qū)別前者不是可變的后者是可變的;
}
//System.out.println(html); //打印出爬取頁面的全部代碼;
if(is!=null) //接下來是關(guān)閉流,防止資源的浪費(fèi);
{
is.close();
is=null;
}
Document doc=Jsoup.parse(html.toString()); //通過Jsoup解析頁面,生成一個(gè)document對(duì)象;
Elements elements=doc.getElementsByClass("XX");//通過class的名字得到(即XX),一個(gè)數(shù)組對(duì)象Elements里面有我們想要的數(shù)據(jù),至于這個(gè)div的值呢你打開瀏覽器按下F12就知道了;
for (Element element:elements) {
System.out.println(element.text()); //打印出每一個(gè)節(jié)點(diǎn)的信息;你可以選擇性的保留你想要的數(shù)據(jù),一般都是獲取個(gè)固定的索引;
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
上一張自己爬取的圖片,并用fusioncharts生成報(bào)表(一般抓取的是int類型的數(shù)據(jù)的話,生成報(bào)表可以很直觀)

以上這篇JAVA超級(jí)簡(jiǎn)單的爬蟲實(shí)例講解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot實(shí)現(xiàn)啟動(dòng)項(xiàng)目后立即執(zhí)行的方法總結(jié)
在項(xiàng)目開發(fā)中某些場(chǎng)景必須要用到啟動(dòng)項(xiàng)目后立即執(zhí)行方式的功能,所以這篇文章就來和大家聊聊實(shí)現(xiàn)立即執(zhí)行的幾種方法,希望對(duì)大家有所幫助2023-05-05
Java實(shí)現(xiàn)簡(jiǎn)單修改文件名的方法分析
這篇文章主要介紹了Java實(shí)現(xiàn)簡(jiǎn)單修改文件名的方法,結(jié)合具體實(shí)例分析了2種比較常用的java文件名修改方法,需要的朋友可以參考下2017-09-09
解決SpringBoot中使用@Transactional注解遇到的問題
這篇文章主要介紹了SpringBoot中使用@Transactional注解遇到的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09
Java實(shí)現(xiàn)數(shù)字金額轉(zhuǎn)化為英文金額功能
在處理財(cái)務(wù)數(shù)據(jù)時(shí),有時(shí)需要將數(shù)字形式的金額轉(zhuǎn)換成英文描述的形式,比如在生成正式文件或發(fā)票時(shí),本文將介紹如何使用Java實(shí)現(xiàn)這一功能,需要的朋友可以參考下2025-03-03
解決IDEA上循環(huán)依賴報(bào)錯(cuò)問題Error:java: Annotation processing&n
這篇文章主要介紹了解決IDEA上循環(huán)依賴報(bào)錯(cuò)問題Error:java: Annotation processing is not supported for module cycles,具有很好的參考價(jià)值,希望對(duì)大家有所幫助2023-10-10
基于Java 數(shù)組內(nèi)存分配的相關(guān)問題
本篇文章是對(duì)Java中數(shù)組內(nèi)存分配進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
IDEA 中使用 ECJ 編譯出現(xiàn) java.lang.IllegalArgumentException的錯(cuò)誤問題
這篇文章主要介紹了IDEA 中使用 ECJ 編譯出現(xiàn) java.lang.IllegalArgumentException問題 ,本文內(nèi)容簡(jiǎn)短給大家介紹的好,需要的朋友可以參考下2020-05-05

