国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁(yè) > 開(kāi)發(fā) > Java > 正文

Java實(shí)現(xiàn)爬取百度圖片的方法分析

2024-07-14 08:43:23
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

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

在以往用java來(lái)處理解析HTML文檔或者片段時(shí),我們通常會(huì)采用htmlparser(http://htmlparser.sourceforge.net/)這個(gè)開(kāi)源類庫(kù)。現(xiàn)在我們有了JSOUP,以后的處理HTML的內(nèi)容只需要使用JSOUP就已經(jīng)足夠了,JSOUP有更快的更新,更方便的API等。

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

jsoup的主要功能如下:

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

jsoup是基于MIT協(xié)議發(fā)布的,可放心使用于商業(yè)項(xiàng)目。官方網(wǎng)站:http://jsoup.org/

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

獲取網(wǎng)頁(yè)資源的核心模塊就是通過(guò)Jsoup去獲取網(wǎng)頁(yè)的內(nèi)容,具體核心代碼如下:

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")//請(qǐng)求參數(shù)          .userAgent("Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)")//設(shè)置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地址是百度圖片搜索的地址,具體調(diào)用代碼如下:

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是我們要搜索的關(guān)鍵字,pn是顯示的頁(yè)碼,rn是一頁(yè)顯示多少個(gè)數(shù)據(jù)。

解析網(wǎng)頁(yè)的資源,然后封裝起來(lái)。核心代碼如下:

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這個(gè)正則表達(dá)式,通過(guò)正則表達(dá)式,去網(wǎng)頁(yè)中解析符合規(guī)定的圖片URL地址,然后封裝在對(duì)象中。

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

//根據(jù)圖片網(wǎng)絡(luò)地址下載圖片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("找不到該網(wǎng)絡(luò)圖片....");    }catch(NullPointerException nullPointerE){      LogUtils.writeLog("找不到該網(wǎng)絡(luò)圖片....");    }catch(IOException ioE){      LogUtils.writeLog("產(chǎn)生IO異常.....");    }catch (Exception e) {      e.printStackTrace();    }finally{      try {        fos.close();      } catch (Exception e) {        e.printStackTrace();      }    }}

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

因?yàn)槲疫@邊是maven項(xiàng)目,所以在開(kāi)發(fā)前需要引入Jsoup依賴才可以。

源碼可點(diǎn)擊此處本站下載

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


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到JAVA教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
在线中文字幕av| 丁香在线视频| 国产在线www| 免费观看久久久久| 青青草视频在线免费观看| 本道综合精品| 国产美女在线观看| 国产一区精品| 四虎久久影院| av在线天天| 国产精品一区二区三区四区色| 国产久草在线| 中文资源在线网| 九九久久久2| 国产经典自拍视频在线观看| 免费午夜一级| 精品欧美日韩一区二区| 日本精品一区二区三区在线播放| 久草亚洲一区| 91极品在线| 成人福利视频导航| 在线视频99| 国产视频1区| 久久久久久五月天久久久久久久久| 午夜视频在线免费| 国产一二三在线观看| a√在线视频| 国产无套粉嫩白浆在线2022年| 在线播放一区二区精品产| 天天操人人干| 欧美啪啪精品| 亚洲视频在线网| 69久久久久| 91久久麻豆| 国产福利视频在线观看| 尤物网在线观看| 国产在线激情视频| 免费a级在线播放| 亚洲欧美综合乱码精品成人网| 非洲黑人最猛性xxxx交| 伊人免费在线| av片在线观看永久免费| 91国内在线| 中文在线视频观看| 亚洲天堂久久久| 日本一二区视频| 亚洲精品天堂在线观看| av手机天堂| 99在线播放| 热99在线观看| 国产中文伊人| 中文字幕在线观看日本| 国产一级黄色电影| 国产成人精品自线拍| 国产福利在线观看| 精品推荐蜜桃传媒| 精品国产白色丝袜高跟鞋| 2019中文字幕在线电影免费| 国产99re| 青青久草在线| 国产天堂资源| 在线观看国产视频| 久热av在线| 精品欧美日韩一区二区| www.狠狠操| 大香伊人中文字幕精品| 国产精彩视频在线观看免费蜜芽| 96精品视频| 国产免费视频| 2020亚洲男人天堂| h网站久久久| 午夜免费福利在线观看| 国产二级片在线| 欧美日韩性视频一区二区三区| 国产免费高清| 小说区乱图片区| 国产视频你懂的| 九九精品九九| 中文产幕区在线观看| 国产精品自拍在线观看| 在线激情小视频| 国产特级毛片| 轻轻色免费在线视频| 精品无人乱码| 午夜国产视频| h视频在线网站| 精品视频vs精品视频| 国产男女无套在线播放| 欧美啪啪精品| 亚洲字幕成人中文在线观看| 中文字幕在线资源| 免费视频中文字幕| 伊人伊人av电影| √天堂资源中文www| 国产一二三区在线观看| 免费看av大片| 欧美性猛交xxxx免费看久久| 99热免费在线| 国产精品剧情一区二区三区| 超碰97在线免费观看| 一区免费观看| 99中文字幕一区| ·天天天天操| 精品国产一区二区三区四区阿崩 | 国产性色视频| 福利资源在线久| 本道综合精品| 超碰在线影院| 国产毛片在线看| 粉嫩av一区| 国产美女一区视频| 国产三区视频在线观看| 国产精品视频福利一区二区| 国产黄色片在线观看| 国产对白叫床清晰在线播放| 精品无人区乱码1区2区3区免费| 精品街拍一区二区| а√天堂8资源在线官网| 欧美国产中文| 国产精品久久人| 亚洲精品aaaa| 中文字幕高清av| 伊人222成人综合网| 激情六月婷婷| 国产黄色免费在线观看| jizz性欧美| 国产精品视频福利一区二区| 在线激情小视频| 懂色av一区| 日韩黄色成人| 国产精品美女一区二区视频| 色综合久久五月天| 国产小视频福利在线| 永久免费av网站| 日本最新在线视频| free性亚洲| 91午夜视频| 尤物在线网址| 久热免费在线视频| 国产激情在线视频| 九九热在线播放| 亚洲尤物在线视频| 国产变态拳头交视频一区二区| 欧美日韩**字幕一区| 国内外激情在线| 在线看黄网址| 精品国语对白精品自拍视| 日本中文字幕高清视频| 欧美日韩视频精品一区二区| 18被视频免费观看视频| 国产一级免费黄色片| 国产免费黄色| 美女网站在线观看| a中文在线播放| 91网页在线观看| 国产寡妇树林野战在线播放| 超碰免费在线播放| wwwww亚洲| 亚洲成人电视网| 国产小视频免费在线观看| 国精一区二区三区| 国产中文伊人| 丁香花在线电影小说观看 | 在线免费观看污| 2020亚洲男人天堂| 99reav| 999福利在线视频| 最近中文字幕mv2018在线高清| 免费三级毛片| 天天操天天曰| 午夜不卡视频| 国产一级黄色| 精品视频麻豆入口| 亚洲精品在线播放视频| 日本视频在线| 国产精品午夜久久久久久| 五月天天在线| 国产精品国产国产aⅴ| 国产精品久久久久一区二区国产| 2021天堂中文幕一二区在线观| 中文日本在线观看| www网站在线观看| 久久精品蜜桃| 国产精彩视频在线观看免费蜜芽| 91精品国产91久久久久久青草| 午夜在线视频| 国产精品自产拍在线网站| 国产高清在线| 欧美日韩亚洲第一页| 国产一级黄色片免费| 亚洲精品在线视频免费| 国产麻豆一区二区三区精品| 国产视频三区| 欧美日韩视频精品二区| 6699久久国产精品免费| 国产免费av在线| 香蕉视频在线看| 最新中文字幕av专区| 人人在线视频| 91香蕉视频免费在线观看|