摘要:介紹在博客爬蟲爬取豆瓣電影圖片中我們利用的爬蟲框架,將豆瓣電影圖片下載到自己電腦上。那么,在的爬蟲的也可以下載圖片嗎答案當(dāng)然是肯定的在本次分享中,我們將利用的包和函數(shù)來實(shí)現(xiàn)圖片的下載。
介紹
??在博客:Scrapy爬蟲(4)爬取豆瓣電影Top250圖片中我們利用Python的爬蟲框架Scrapy,將豆瓣電影Top250圖片下載到自己電腦上。那么,在Java的爬蟲的也可以下載圖片嗎?答案當(dāng)然是肯定的!
??在本次分享中,我們將利用Java的Jsoup包和FileUtils.copyURLToFile()函數(shù)來實(shí)現(xiàn)圖片的下載。我們將會(huì)爬取IMDB中Top250電影的圖片到自己電腦上,其網(wǎng)頁截圖如下:
??我們實(shí)現(xiàn)圖片下載的爬蟲思路如下:
利用Jsoup解析網(wǎng)頁,得到電影圖片的url和name
利用FileUtils.copyURLToFile()函數(shù)將圖片下載到本地
準(zhǔn)備??在本文程序中,除了Jsoup包外,還用到了commons-io包,其下載地址為:https://mvnrepository.com/art... ,我們主要利用該package中的FileUtils.copyURLToFile(). 讀者需要下載這兩個(gè)包,并將它們?cè)贓clipse中加入到項(xiàng)目的路徑中。
程序??本次分享的主要程序?yàn)镮mageScraper.java,其完整代碼如下:
package wikiScrape; /* 本爬蟲爬取http://www.imdb.cn/IMDB250/中Top250的圖片 * 先利用Jsoup解析得到該網(wǎng)頁中的圖片的url * 然后利用FileUtils.copyURLToFile()函數(shù)將圖片下載到本地 */ import java.io.*; import java.net.*; import java.util.Date; import java.util.ArrayList; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.select.Elements; import org.apache.commons.io.FileUtils; public class ImageScraper { public static void main(String[] args) { Date d1 = new Date(); System.out.println("爬蟲開始......"); // 爬取的網(wǎng)址列表,一共十個(gè)網(wǎng)頁 ArrayListurls = new ArrayList (); urls.add("http://www.imdb.cn/IMDB250/"); for(int i=2; i<=10; i++) { urls.add("http://www.imdb.cn/imdb250/"+ Integer.toString(i)); } String dir = "E://log/"; // 圖片儲(chǔ)存目錄 // 利用循環(huán)下載每個(gè)頁面中的圖片 for(String url: urls) { int index = urls.indexOf(url)+1; System.out.println("開始下載第"+index+"個(gè)網(wǎng)頁中的圖片..."); getPictures(url, dir); System.out.println("第"+index+"個(gè)網(wǎng)頁中的圖片下載完畢! "); } System.out.println("程序運(yùn)行完畢!"); Date d2 = new Date(); // 計(jì)算程序的運(yùn)行時(shí)間,并輸出 long seconds = (d2.getTime()-d1.getTime())/1000; System.out.println("一共用時(shí): "+seconds+"秒."); } // getContent()函數(shù): 將網(wǎng)頁中的電影圖片下載到本地 public static void getPictures(String url, String dir){ // 利用URL解析網(wǎng)址 URL urlObj = null; try{ urlObj = new URL(url); } catch(MalformedURLException e){ System.out.println("The url was malformed!"); } // URL連接 URLConnection urlCon = null; try{ // 打開URL連接 urlCon = urlObj.openConnection(); // 將HTML內(nèi)容解析成UTF-8格式 Document doc = Jsoup.parse(urlCon.getInputStream(), "utf-8", url); // 提取電影圖片所在的HTML代碼塊 Elements elems = doc.getElementsByClass("ss-3 clear"); Elements pic_block = elems.first().getElementsByTag("a"); for(int i=0; i 運(yùn)行 ??運(yùn)行以上程序,結(jié)果如下:
??查看E盤中的log文件夾,內(nèi)容如下:
??一共下載了244張圖片,用時(shí)140秒,有幾張圖片下載失敗,效果還算OK.
??本次分享就到此結(jié)束嘍,歡迎大家交流~~
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/68922.html
摘要:本次分享將在此基礎(chǔ)上,利用多線程,提高程序運(yùn)行的效率。思路本次分享建立在博客爬蟲之下載中電影的圖片上,總體的爬蟲思路沒有變化,只是在此基礎(chǔ)上引入多線程。 介紹 ??在博客:Java爬蟲之下載IMDB中Top250電影的圖片中我們實(shí)現(xiàn)了利用Java爬蟲來下載圖片,但是效率不算太高。本次分享將在此基礎(chǔ)上,利用多線程,提高程序運(yùn)行的效率。 思路 ??本次分享建立在博客Java爬蟲之下載IMD...
摘要:本次爬蟲項(xiàng)目將會(huì)用到模塊中的類,多線程豆瓣電影圖片??偨Y(jié)通過上述兩個(gè)爬蟲程序的對(duì)比,我們不難發(fā)現(xiàn),同樣是下載豆瓣電影,個(gè)網(wǎng)頁中的圖片,在沒有使用多線程的情況下,總共耗時(shí)約,而在使用多線程個(gè)線程的情況下,總共耗時(shí)約秒,效率整整提高了約倍。 爬蟲項(xiàng)目介紹 ??本次爬蟲項(xiàng)目將爬取豆瓣Top250電影的圖片,其網(wǎng)址為:https://movie.douban.com/top250, 具體頁面如...
摘要:前篇全片都是生硬的理論使用,今天就放個(gè)靜態(tài)爬取的實(shí)例讓大家體驗(yàn)一下的使用,了解一些背后的原理。給出網(wǎng)站打開右鍵檢查第一個(gè)電影,分析源碼先,發(fā)現(xiàn)每個(gè)標(biāo)簽就對(duì)應(yīng)著一個(gè)電影的信息。 前篇全片都是生硬的理論使用,今天就放個(gè)靜態(tài)爬取的實(shí)例讓大家體驗(yàn)一下BeautifulSoup的使用,了解一些背后的原理。 順便在這引入靜態(tài)網(wǎng)頁的概念——靜態(tài)網(wǎng)頁是指一次性加載所有內(nèi)容的網(wǎng)頁,爬蟲一次請(qǐng)求便能得到所...
摘要:另外由于豆瓣上一些電影評(píng)分?jǐn)?shù)量太少而不顯示,所以這里的電影數(shù)量會(huì)和票房數(shù)量有所差異。月度票房將類型片的票房按月劃分,得到了這張圖。 去年末的時(shí)候,我招收了新的 實(shí)訓(xùn)生 。本文是其中一位 @齊大圣 同學(xué)在實(shí)訓(xùn)兩個(gè)月時(shí)完成的項(xiàng)目案例。(碼上行動(dòng)群里同學(xué)應(yīng)該都看過這個(gè)名字,現(xiàn)在也是助教之一。)項(xiàng)目最初的想法是, 從互聯(lián)網(wǎng)上的公開信息中采集2018年在國內(nèi)上映電影的票房、評(píng)分、類型、演員等信息...
摘要:這次我們爬取的內(nèi)容準(zhǔn)備步驟找到格式網(wǎng)頁中需要爬取的數(shù)據(jù)的例如我們需要爬取圖片的這里用的是不會(huì)用的同學(xué)請(qǐng)百度然后我們開始建立工程打開然后在你想要建立工程的目錄下面輸入就會(huì)自動(dòng)建立一個(gè)工程然后去根目錄建立一個(gè)去這個(gè)目錄里建立一個(gè)注意這里的主爬蟲 這次我們爬取的內(nèi)容 showImg(https://segmentfault.com/img/bVSirX?w=1021&h=521); 準(zhǔn)備步驟...
閱讀 2039·2023-04-25 23:30
閱讀 1458·2021-11-24 10:18
閱讀 3097·2021-10-09 09:54
閱讀 2024·2021-10-08 10:05
閱讀 3447·2021-09-23 11:21
閱讀 3169·2019-08-30 15:52
閱讀 1569·2019-08-30 13:05
閱讀 1068·2019-08-30 13:02