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