最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實現(xiàn)的爬蟲抓取圖片并保存操作示例

 更新時間:2018年08月31日 09:47:10   作者:smilecjw  
這篇文章主要介紹了Java實現(xiàn)的爬蟲抓取圖片并保存操作,涉及Java針對頁面URL訪問、獲取、字符串匹配、文件下載等相關(guān)操作技巧,需要的朋友可以參考下

本文實例講述了Java實現(xiàn)的爬蟲抓取圖片并保存操作。分享給大家供大家參考,具體如下:

這是我參考了網(wǎng)上一些資料寫的第一個java爬蟲程序

本來是想獲取煎蛋網(wǎng)無聊圖的圖片,但是網(wǎng)絡(luò)返回碼一直是503,所以換了網(wǎng)站

import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/*
 * 網(wǎng)絡(luò)爬蟲取數(shù)據(jù)
 *
 * */
public class JianDan {
  public static String GetUrl(String inUrl){
    StringBuilder sb = new StringBuilder();
    try {
      URL url =new URL(inUrl);
      BufferedReader reader =new BufferedReader(new InputStreamReader(url.openStream()));
      String temp="";
      while((temp=reader.readLine())!=null){
        //System.out.println(temp);
        sb.append(temp);
      }
    } catch (MalformedURLException e) {
      // TODO 自動生成的 catch 塊
      e.printStackTrace();
    } catch (IOException e) {
      // TODO 自動生成的 catch 塊
      e.printStackTrace();
    }
    return sb.toString();
  }
  public static List<String> GetMatcher(String str,String url){
    List<String> result = new ArrayList<String>();
    Pattern p =Pattern.compile(url);//獲取網(wǎng)頁地址
    Matcher m =p.matcher(str);
    while(m.find()){
      //System.out.println(m.group(1));
      result.add(m.group(1));
    }
    return result;
  }
  public static void main(String args[]){
    String str=GetUrl("http://www.163.com");
    List<String> ouput =GetMatcher(str,"src=\"([\\w\\s./:]+?)\"");
    for(String temp:ouput){
      //System.out.println(ouput.get(0));
      System.out.println(temp);
    }
    String aurl=ouput.get(0);
     // 構(gòu)造URL
    URL url;
    try {
      url = new URL(aurl);
       // 打開URL連接
      URLConnection con = (URLConnection)url.openConnection();
       // 得到URL的輸入流
      InputStream input = con.getInputStream();
      // 設(shè)置數(shù)據(jù)緩沖
      byte[] bs = new byte[1024 * 2];
      // 讀取到的數(shù)據(jù)長度
      int len;
      // 輸出的文件流保存圖片至本地
      OutputStream os = new FileOutputStream("a.png");
      while ((len = input.read(bs)) != -1) {
      os.write(bs, 0, len);
      }
      os.close();
      input.close();
    } catch (MalformedURLException e) {
      // TODO 自動生成的 catch 塊
      e.printStackTrace();
    } catch (IOException e) {
      // TODO 自動生成的 catch 塊
      e.printStackTrace();
    }
  }
}

運行輸出:

更多關(guān)于java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java網(wǎng)絡(luò)編程技巧總結(jié)》、《Java Socket編程技巧總結(jié)》、《Java文件與目錄操作技巧匯總》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點技巧總結(jié)》和《Java緩存操作技巧匯總

希望本文所述對大家java程序設(shè)計有所幫助。

相關(guān)文章

  • SpringBoot對接小程序微信支付的實現(xiàn)

    SpringBoot對接小程序微信支付的實現(xiàn)

    本文主要介紹了SpringBoot對接小程序微信支付的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧<BR>
    2023-09-09
  • Java Convert Kotlin空指針異常的解決方法

    Java Convert Kotlin空指針異常的解決方法

    本文主要介紹了Java?Convert?Kotlin空指針異常的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Java詳細分析講解自動裝箱自動拆箱與Integer緩存的使用

    Java詳細分析講解自動裝箱自動拆箱與Integer緩存的使用

    裝箱就是把基本類型轉(zhuǎn)換成包裝類,拆箱就是把包裝類轉(zhuǎn)換成基本類型,下面這篇文章主要給大家介紹Java中自動裝箱、自動拆箱與Integer緩存,需要的朋友可以參考下
    2022-04-04
  • IDEA找不到j(luò)dk該如何解決

    IDEA找不到j(luò)dk該如何解決

    這篇文章主要給大家介紹了關(guān)于IDEA找不到j(luò)dk該如何解決的相關(guān)資料,剛安裝好IDEA后,我們運行一個項目時候,有時候會遇到顯示找不到Java的JDK,需要的朋友可以參考下
    2023-11-11
  • Java設(shè)計模式開發(fā)中使用觀察者模式的實例教程

    Java設(shè)計模式開發(fā)中使用觀察者模式的實例教程

    這篇文章主要介紹了Java設(shè)計模式開發(fā)中使用觀察者模式的實例教程,松耦合和邏輯清晰的消息監(jiān)聽是觀察者模式的大特色,需要的朋友可以參考下
    2016-04-04
  • 詳解SpringBoot中異步請求和異步調(diào)用(看完這一篇就夠了)

    詳解SpringBoot中異步請求和異步調(diào)用(看完這一篇就夠了)

    這篇文章主要介紹了SpringBoot中異步請求和異步調(diào)用問題,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-04-04
  • Spring中的@Autowired、@Qualifier和@Primary注解詳解

    Spring中的@Autowired、@Qualifier和@Primary注解詳解

    這篇文章主要介紹了Spring中的@Autowired、@Qualifier和@Primary注解詳解,@Autowired?注解,可以對類成員變量、方法和構(gòu)造函數(shù)進行標(biāo)注,完成自動裝配的工作,@Autowired?是默認根據(jù)?byType?進行自動裝配的,需要的朋友可以參考下
    2023-11-11
  • Spring?Boot集成Milvus快速入門demo示例詳解

    Spring?Boot集成Milvus快速入門demo示例詳解

    Milvus是一種高性能向量數(shù)據(jù)庫,支持從筆記本到大型分布式系統(tǒng)的多環(huán)境運行,它以開源和云服務(wù)形式提供,是LFAI & Data Foundation的項目,采用Apache 2.0許可,Milvus特別支持高并行化和解耦的系統(tǒng)架構(gòu),使其能夠隨數(shù)據(jù)增長而擴展,支持各種復(fù)雜搜索功能,滿足企業(yè)級AI應(yīng)用需求
    2024-09-09
  • Springboot整合Mybatispuls的實例詳解

    Springboot整合Mybatispuls的實例詳解

    這篇文章主要介紹了Springboot整合Mybatispuls的相關(guān)資料,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • elasticsearch 8.2.3 安裝及springboot簡單使用

    elasticsearch 8.2.3 安裝及springboot簡單使用

    這篇文章主要介紹了elasticsearch 8.2.3 安裝及springboot簡單使用,本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-06-06

最新評論

萝北县| 望江县| 尤溪县| 平安县| 石渠县| 兰西县| 凌海市| 会泽县| 临西县| 泰和县| 衡东县| 揭东县| 临汾市| 金寨县| 钟山县| 文化| 江阴市| 扎兰屯市| 都昌县| 云南省| 成都市| 红河县| 巫山县| 平和县| 绥滨县| 那曲县| 大宁县| 丁青县| 永修县| 枣庄市| 景谷| 游戏| 博兴县| 南通市| 宜州市| 河东区| 咸丰县| 壶关县| 田阳县| 临海市| 南江县|