摘要:使用抓取網(wǎng)頁圖片的使用非常廣泛,可以做通信,做爬蟲,甚至可以做桌面應(yīng)用程序。今天就利用閑暇時間寫個小小的分享利用爬取百度圖片首頁的圖片。
使用 node 抓取網(wǎng)頁圖片
node 的使用非常廣泛,可以做通信,做爬蟲,甚至可以做桌面應(yīng)用程序。
今天就利用閑暇時間寫個小小的分享:利用 node 爬取百度圖片首頁的圖片。
對,就是中間那幾張:
首先新建一個文件夾,名字隨便取,只要不是中文就行,然后在命令行中初始化一下:
npm init -y
新建一個名為 app.js 的文件
在這個文件里,我們需要引入一些模塊:
var http=require("http"); var https=require("https") var fs=require("fs"); var cheerio=require("cheerio");
cheerio 模塊是第三方模塊,需要進(jìn)行安裝:
npm install cheerio --save
接下來,需要解析百度圖片的首頁:
var wz="http://images.baidu.com/"; var strHtml=""; http.get(wz,(res)=>{ res.on("data",(chunk)=>{ strHtml+=chunk; }); console.log(strHtml) })
在命令行輸入 node app.js 運(yùn)行,會在命令行看到網(wǎng)頁的源代碼。這樣網(wǎng)頁就解析完了。
接下來我們需要獲取首頁中間的十張圖片。
要獲取圖片,就必須知道圖片的 url 地址,在這個網(wǎng)頁上,圖片的url地址在 img_single_box 下的 img 標(biāo)簽里。
我們之前引用了一個名為 cheerio 的第三方模塊,這個庫是一個 jQuery 的模塊,可以在服務(wù)端寫 jQuery
在上面的代碼示例中,我們已經(jīng)獲取到了網(wǎng)頁源代碼,接下來就要找到我們需要的 url 地址了:
http.get(wz,(res)=>{ res.on("data",(chunk)=>{ ··· }); res.on("end",()=>{ var $=cheerio.load(strHtml); //建立一個空數(shù)組,用來放我們?nèi)〉玫膗rl地址 var imgdata=[]; $(".img_single_box img").each((index,item)=>{ imgdata.push($(item).attr("src")) }); console.log(imgdata) }) })
運(yùn)行我們寫的文件,你將會看到我們需要的url地址已經(jīng)存進(jìn)去了。
現(xiàn)在就利用這幾個url地址來保存圖片了
http.get(wz,(res)=>{ res.on("data",(chunk)=>{ ··· }); res.on("end",()=>{ ··· function saveImage(imgdata){ https.get(imgdata,(res)=>{ res.setEncoding("binary");//二進(jìn)制文件 var data=""; res.on("data",(a)=>{ data+=a; }).on("end",()=>{ if(!fs.existsSync("./images")){ fs.mkdirSync("./images"); }; fs.writeFile("images/"+Math.random()+".png",data,"binary",(err)=>{ if(!err) console.log("成功") }) }) }); } for(var i=0;i到這里就寫完了,在命令行 node app.js ,是不是在 images 文件夾下有了10張圖片呢?
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/89061.html
摘要:前言本文整理自慕課網(wǎng)開發(fā)簡單爬蟲,將會記錄爬取百度百科詞條相關(guān)頁面的整個過程。本實例抓取百度百科詞條頁面以及相關(guān)詞條頁面的標(biāo)題和簡介。分析目標(biāo)格式進(jìn)入百度百科詞條頁面,頁面中相關(guān)詞條的鏈接比較統(tǒng)一,大都是。 前言 本文整理自慕課網(wǎng)《Python開發(fā)簡單爬蟲》,將會記錄爬取百度百科python詞條相關(guān)頁面的整個過程。 抓取策略 showImg(https://segmentfault.c...
摘要:背景本人于周六早上驚醒于翠花的電話轟炸中一大早竟然問這么傷腦筋愚蠢的問題本想趕緊打發(fā)了繼續(xù)我的回籠覺沒想到樂于助人的我當(dāng)然要幫幫助他了看到這里的紅色感嘆號不禁眉頭一皺打開網(wǎng)站不出我所料姹紫嫣紅的圖片差點閃瞎我的鈦合金狗眼幾番瀏覽欣賞后收工大 背景 本人于周六早上驚醒于翠花的電話轟炸中... showImg(https://segmentfault.com/img/remote/1460...
摘要:爬蟲介紹二爬蟲的分類通用網(wǎng)絡(luò)爬蟲全網(wǎng)爬蟲爬行對象從一些種子擴(kuò)充到整個,主要為門戶站點搜索引擎和大型服務(wù)提供商采集數(shù)據(jù)。 分分鐘教你用node.js寫個爬蟲 寫在前面 十分感謝大家的點贊和關(guān)注。其實,這是我第一次在segmentfault上寫文章。因為我也是前段時間偶然之間才開始了解和學(xué)習(xí)爬蟲,而且學(xué)習(xí)node的時間也不是很長。雖然用node做過一些后端的項目,但其實在node和爬蟲方面...
摘要:獲取獲取上下文句柄執(zhí)行計算銷毀句柄除此之外,還可以使用意為在瀏覽器環(huán)境執(zhí)行腳本,可傳入第二個參數(shù)作為句柄,而則針對選中的一個元素執(zhí)行操作。 我們?nèi)粘J褂脼g覽器或者說是有頭瀏覽器時的步驟為:啟動瀏覽器、打開一個網(wǎng)頁、進(jìn)行交互。 無頭瀏覽器指的是我們使用腳本來執(zhí)行以上過程的瀏覽器,能模擬真實的瀏覽器使用場景。 有了無頭瀏覽器,我們就能做包括但不限于以下事情: 對網(wǎng)頁進(jìn)行截圖保存為圖片或 ...
摘要:前言一直很喜歡看科技新聞,多年來一直混跡于,以前西貝的評論區(qū)是匿名的,所以評論區(qū)非?;钴S,各種噴子和段子,不過也確實很歡樂,可以說那是西貝人氣最旺的時候。 前言 一直很喜歡看科技新聞,多年來一直混跡于cnBeta,以前西貝的評論區(qū)是匿名的,所以評論區(qū)非?;钴S,各種噴子和段子,不過也確實很歡樂,可以說那是西貝人氣最旺的時候。然而自從去年網(wǎng)信辦出臺了《互聯(lián)網(wǎng)跟帖評論服務(wù)管理規(guī)定》,要求只有...
閱讀 3328·2021-11-08 13:12
閱讀 2771·2021-10-15 09:41
閱讀 1461·2021-10-08 10:05
閱讀 3309·2021-10-08 10:04
閱讀 2119·2021-09-29 09:34
閱讀 2497·2019-08-30 15:55
閱讀 2990·2019-08-30 15:45
閱讀 2594·2019-08-29 14:17