亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

Java實現爬取百度圖片的方法分析

2024-07-14 08:43:23
字體:
來源:轉載
供稿:網友

本文實例講述了Java實現爬取百度圖片的方法。分享給大家供大家參考,具體如下:

在以往用java來處理解析HTML文檔或者片段時,我們通常會采用htmlparser(http://htmlparser.sourceforge.net/)這個開源類庫?,F在我們有了JSOUP,以后的處理HTML的內容只需要使用JSOUP就已經足夠了,JSOUP有更快的更新,更方便的API等。

jsoup 是一款 Java 的HTML 解析器,可直接解析某個URL地址、HTML文本內容。它提供了一套非常省力的API,可通過DOM,CSS以及類似于jQuery的操作方法來取出和操作數據,可以看作是java版的jQuery。

jsoup的主要功能如下:

  • 從一個URL,文件或字符串中解析HTML;
  • 使用DOM或CSS選擇器來查找、取出數據;
  • 可操作HTML元素、屬性、文本;

jsoup是基于MIT協議發布的,可放心使用于商業項目。官方網站:http://jsoup.org/

步驟大致可以分為三個模塊:一是獲取網頁的資源,二是解析獲取的資源,取出我們想要的圖片URL地址,三是通過java的io存儲在本地文件中。

獲取網頁資源的核心模塊就是通過Jsoup去獲取網頁的內容,具體核心代碼如下:

private static List<JsoupImageVO> findImageNoURl(String hotelId, String url, int timeOut) {    List<JsoupImageVO> result = new ArrayList<JsoupImageVO>();    Document document = null;    try {      document = Jsoup.connect(url).data("query", "Java")//請求參數          .userAgent("Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)")//設置urer-agent get();          .timeout(timeOut)          .get();      String xmlSource = document.toString();      result = dealResult(xmlSource, hotelId);    } catch (Exception e) {      String defaultURL = "http://qnimg.zowoyoo.com/img/15463/1509533934407.jpg";      result = dealResult(defaultURL,hotelId);    }    return result;}

其中URL地址是百度圖片搜索的地址,具體調用代碼如下:

public static List<JsoupImageVO> findImage(String hotelName, String hotelId, int page) {    int number=5;    String url = "http://image.baidu.com/search/avatarjson?tn=resultjsonavatarnew&ie=utf-8&word=" + hotelName + "&cg=star&pn=" + page * 30 + "&rn="+number+"&itg=0&z=0&fr=&width=&height=&lm=-1&ic=0&s=0&st=-1&gsm=" + Integer.toHexString(page * 30);    int timeOut = 5000;    return findImageNoURl(hotelId, url, timeOut);}

這里需要注意的是:word是我們要搜索的關鍵字,pn是顯示的頁碼,rn是一頁顯示多少個數據。

解析網頁的資源,然后封裝起來。核心代碼如下:

private static List<JsoupImageVO> dealResult(String xmlSource, String hotelId) {    List<JsoupImageVO> result = new ArrayList<JsoupImageVO>();    xmlSource = StringEscapeUtils.unescapeHtml3(xmlSource);    String reg = "objURL/":/"http://.+?//.(gif|jpeg|png|jpg|bmp)";    Pattern pattern = Pattern.compile(reg);    Matcher m = pattern.matcher(xmlSource);    while (m.find()) {      JsoupImageVO jsoupImageVO = new JsoupImageVO();      String imageURL = m.group().substring(9);      if(imageURL==null || "".equals(imageURL)){        String defaultURL = "http://qnimg.zowoyoo.com/img/15463/1509533934407.jpg";        jsoupImageVO.setUrl(defaultURL);      }else{        jsoupImageVO.setUrl(imageURL);      }      jsoupImageVO.setName(hotelId);      result.add(jsoupImageVO);    }    return result;}

這里最主要的地方就是reg這個正則表達式,通過正則表達式,去網頁中解析符合規定的圖片URL地址,然后封裝在對象中。

最后一部分就是通過java的io流去圖片地址獲取圖片,并保存在本地。核心代碼如下:

//根據圖片網絡地址下載圖片public static void download(String url,String name,String path){    File file= null;    File dirFile=null;    FileOutputStream fos=null;    HttpURLConnection httpCon = null;    URLConnection con = null;    URL urlObj=null;    InputStream in =null;    byte[] size = new byte[1024];    int num=0;    try {      dirFile = new File(path);      if(dirFile.exists()){        dirFile.delete();      }      dirFile.mkdir();      file = new File(path+"//"+name+".jpg");      fos = new FileOutputStream(file);      if(url.startsWith("http")){        urlObj = new URL(url);        con = urlObj.openConnection();        httpCon =(HttpURLConnection) con;        in = httpCon.getInputStream();        while((num=in.read(size)) != -1){          for(int i=0;i<num;i++)            fos.write(size[i]);        }      }    }catch (FileNotFoundException notFoundE) {      LogUtils.writeLog("找不到該網絡圖片....");    }catch(NullPointerException nullPointerE){      LogUtils.writeLog("找不到該網絡圖片....");    }catch(IOException ioE){      LogUtils.writeLog("產生IO異常.....");    }catch (Exception e) {      e.printStackTrace();    }finally{      try {        fos.close();      } catch (Exception e) {        e.printStackTrace();      }    }}

這里面的操作都是java中io篇一些基礎的操作,有不懂的可以去看看java中io模塊的內容。

因為我這邊是maven項目,所以在開發前需要引入Jsoup依賴才可以。

源碼可點擊此處本站下載。

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


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人精品网站在线观看| 精品magnet| 欧美激情精品久久久久| 狠狠躁夜夜躁人人躁婷婷91| 日韩亚洲综合在线| 欧美大全免费观看电视剧大泉洋| 亚洲电影免费观看高清完整版在线| 大桥未久av一区二区三区| 97精品免费视频| 久久青草福利网站| 色综合天天综合网国产成人网| 亚洲高清福利视频| 国产成人啪精品视频免费网| 国语自产精品视频在线看一大j8| 国产亚洲精品久久久久久牛牛| 精品久久久在线观看| 久久成人18免费网站| 国产一区二区三区久久精品| 久久频这里精品99香蕉| 成人在线激情视频| 69视频在线免费观看| 日韩精品中文字幕视频在线| 日本一区二区不卡| 亚洲成人教育av| 久久人人爽人人爽爽久久| 91av视频在线免费观看| 中文字幕日韩欧美精品在线观看| 色综合久久88色综合天天看泰| 亚洲精品永久免费| 欧美激情精品久久久久久久变态| 日韩精品在线私人| 黑人巨大精品欧美一区二区一视频| 国产精品一区二区3区| 97精品一区二区三区| 亚洲自拍中文字幕| 欧美黑人xxx| 久久亚洲欧美日韩精品专区| 91亚洲精品一区| 91精品久久久久久综合乱菊| 欧美成人在线免费视频| 日日骚久久av| 91精品在线观| 久久久久久久亚洲精品| 精品国产依人香蕉在线精品| 欧美激情影音先锋| 亚洲精品电影在线| 欧美国产亚洲视频| 日韩经典中文字幕| 裸体女人亚洲精品一区| 久久精品人人做人人爽| 亚洲人成电影在线观看天堂色| 激情亚洲一区二区三区四区| 日韩中文字幕视频在线| 欧美日韩亚洲成人| 96精品久久久久中文字幕| 亚洲午夜色婷婷在线| 亚洲电影在线看| 久久亚洲国产精品成人av秋霞| 国产免费一区二区三区在线能观看| 亚洲黄色免费三级| 久久精品这里热有精品| 精品自拍视频在线观看| 欧美激情一区二区三区久久久| 亚洲美腿欧美激情另类| 欧美裸体男粗大视频在线观看| 欧美在线中文字幕| 亚洲成人黄色网| 日本亚洲欧美成人| 日韩欧美中文字幕在线播放| 日日骚av一区| 91精品国产91久久久久久久久| 欧美一级视频免费在线观看| 尤物精品国产第一福利三区| 日韩av免费网站| 久久精品成人一区二区三区| 欧美大尺度激情区在线播放| 亚洲人成绝费网站色www| 日韩电影视频免费| 日韩av有码在线| 中文字幕日韩精品有码视频| 最近免费中文字幕视频2019| 色综合视频一区中文字幕| 日韩小视频在线| 中文国产成人精品久久一| 日本久久久久久久久久久| 国产一区二区在线免费视频| 亚洲视频在线观看免费| 成人伊人精品色xxxx视频| 亚洲二区中文字幕| 欧美老妇交乱视频| www亚洲精品| 亚洲欧洲自拍偷拍| 亚洲嫩模很污视频| 揄拍成人国产精品视频| 色香阁99久久精品久久久| 国产精品免费小视频| 色综合久久天天综线观看| 亚洲大胆人体在线| 日韩极品精品视频免费观看| 国产精品第一页在线| 91精品91久久久久久| 国产在线播放91| 亚洲成人久久网| 国产日韩精品电影| 91美女福利视频高清| 欧美韩日一区二区| 亚洲成人激情在线| 日韩中文在线不卡| 久久天堂av综合合色| 久久久日本电影| 亚洲欧美综合另类中字| 久久av资源网站| 欧美日韩一区二区三区在线免费观看| 午夜精品一区二区三区在线播放| 欧美国产激情18| 人九九综合九九宗合| 亚洲第一天堂无码专区| 日韩小视频网址| 午夜免费在线观看精品视频| 欧美性猛xxx| 日本不卡免费高清视频| 成人写真福利网| 国产精品久久久久久久久久99| 精品女同一区二区三区在线播放| 国产在线98福利播放视频| 亚洲国产成人精品久久| 另类视频在线观看| 日韩亚洲欧美成人| 麻豆国产精品va在线观看不卡| 在线观看精品国产视频| 日韩av男人的天堂| 日韩久久精品成人| 欧美日韩国产一区在线| 黄网站色欧美视频| 九九热最新视频//这里只有精品| 国产精品一二区| 日韩免费av在线| 欧美大尺度电影在线观看| 欧美成在线观看| 欧美极品第一页| 成人免费看吃奶视频网站| 中文字幕欧美国内| www.久久久久| 精品国偷自产在线| 欧美综合国产精品久久丁香| 夜夜嗨av一区二区三区免费区| 6080yy精品一区二区三区| 欧美性做爰毛片| 久久久成人的性感天堂| 91久久精品国产| 57pao成人永久免费视频| 日韩精品免费观看| 久久91亚洲人成电影网站| 国产精品一区二区三区在线播放| 国产色综合天天综合网| 国产精品成人va在线观看| 国产噜噜噜噜久久久久久久久| 国产精品对白刺激| 日韩欧美aaa| 亚洲人成自拍网站| 欧美大片在线影院| 亚洲人成网7777777国产| 在线看日韩av| 亚洲国产精久久久久久|