摘要:背景本人于周六早上驚醒于翠花的電話轟炸中一大早竟然問這么傷腦筋愚蠢的問題本想趕緊打發(fā)了繼續(xù)我的回籠覺沒想到樂于助人的我當然要幫幫助他了看到這里的紅色感嘆號不禁眉頭一皺打開網(wǎng)站不出我所料姹紫嫣紅的圖片差點閃瞎我的鈦合金狗眼幾番瀏覽欣賞后收工大
背景
本人于周六早上驚醒于翠花的電話轟炸中...
一大早竟然問這么傷腦筋(愚蠢)的問題
本想趕緊打發(fā)了 繼續(xù)我的回籠覺 沒想到...樂(kou)于(shui)助(zhi)人(liu)的我當然要幫幫助他了!
看到這里的紅色感嘆號 不禁眉頭一皺
打開網(wǎng)站 不出我所料 姹紫嫣紅的gif圖片差點閃瞎我的鈦合金狗眼幾番瀏覽欣賞后收工大吉 正文開始 所用到的模塊
http:創(chuàng)建服務、處理流相關
fs:操作文件及文件夾(讀、寫)
cheerio:簡單粗暴的理解為node界的juquey
先爬來整張網(wǎng)頁為了該文章正常發(fā)出 把翠花提供的鏈接換成站長之家的鏈接來演示
// 引入所需模塊 var http = require("http"); var cheerio = require("cheerio"); var fs = require("fs"); // 定義爬取目標站 var Url = "http://sc.chinaz.com/tupian/" http.get(Url, function (res) { var htmlDate = ""; // 獲取頁面數(shù)據(jù) res.on("data", function (chunk) { htmlDate += chunk; }); // 數(shù)據(jù)獲取結束 res.on("end", function () { // 過濾出所需的元素 filterContent(htmlDate); }); }).on("error", function () { console.log("獲取數(shù)據(jù)出錯!"); });過濾
分析頁面結構 看看哪些是需要的 圖片都在#container獲取到這個節(jié)點
遍歷.box 并拿到 a > img 的 src 和 alt
// 過濾頁面信息 function filterContent(htmlDate) { if (htmlDate) { var $ = cheerio.load(htmlDate); // 得到所需內(nèi)容 var Content = $("#container"); // 存放一會抓來的信息 var ContentData = []; Content.find(".box").each(function (item, b) { var pic = $(this); // 為什么是src2? src獲取不到 打印了一下發(fā)現(xiàn)有src2 var src = formatUrl(pic.find("a").children("img").attr("src2")); var name = formatUrl(pic.find("a").children("img").attr("alt")); // 把抓來的信息交給download函數(shù)去下載 download(src, name) // 這里也存一份 ContentData.push({ src, name }) }); // 存放了抓取的圖片信息 console.log(ContentData) } else { console.log("html null"); } }
抓取鏈接都帶有_s是縮略圖 需要一個方法幫來轉換
// 或取高清鏈接 function formatUrl(imgUrl) { return imgUrl.replace("_s", "") }
// 圖片下載函數(shù) function download(url, name) { http.get(url, function (res) { let imgData = ""; //設置圖片編碼格式 res.setEncoding("binary"); //檢測請求的數(shù)據(jù) res.on("data", (chunk) => { imgData += chunk; }) res.on("end", () => { // 沒有文件夾則創(chuàng)建 以防報錯 if (!fs.existsSync("./images")) { fs.mkdirSync("./images"); }; fs.writeFile(`./images/${name}.jpg`, imgData, "binary", (error) => { if (error) { console.log(error); } else { console.log(`${name}----下載成功!`) } }) }) }) }成果展示 最后曬出勞動所得
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/109566.html
摘要:年前無心工作,上班刷知乎發(fā)現(xiàn)一篇分享爬蟲的文章。另外攜帶的數(shù)據(jù)是用來告訴服務器當前請求是從哪個頁面請求過來的。 年前無心工作,上班刷知乎發(fā)現(xiàn)一篇分享python爬蟲的文章。 感覺他爬取的網(wǎng)站里的妹子都好好看哦,超喜歡這里的,里面?zhèn)€個都是美女。 無小意丶:自我發(fā)掘爬蟲實戰(zhàn)1:宅男女神網(wǎng)妹子圖片批量抓取,分類保存到本地和MongoDB數(shù)據(jù)庫 無奈python雖然入門過但太久沒用早已荒廢,最...
摘要:時間永遠都過得那么快,一晃從年注冊,到現(xiàn)在已經(jīng)過去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時候把他們整理一下了。那是因為收藏夾太亂,橡皮擦給設置私密了,不收拾不好看呀。 ...
摘要:比如分鐘破譯朋友圈測試小游戲文章里用的方法但有些根本就沒有提供網(wǎng)頁端,比如今年火得不行的抖音。所以常用的方式就是通過在電腦上裝一些抓包軟件,將手機上的網(wǎng)絡請求全部顯示出來。總結下,重點是的抓取,關鍵是配置代理證書,難點是對請求的分析。 爬蟲的案例我們已講得太多。不過幾乎都是 網(wǎng)頁爬蟲 。即使有些手機才能訪問的網(wǎng)站,我們也可以通過 Chrome 開發(fā)者工具 的 手機模擬 功能來訪問,以便...
摘要:在這之前,還是有必要對一些概念超輕量級反爬蟲方案后端掘金前言爬蟲和反爬蟲日益成為每家公司的標配系統(tǒng)。 爬蟲修煉之道——從網(wǎng)頁中提取結構化數(shù)據(jù)并保存(以爬取糗百文本板塊所有糗事為例) - 后端 - 掘金歡迎大家關注我的專題:爬蟲修煉之道 上篇 爬蟲修煉之道——編寫一個爬取多頁面的網(wǎng)絡爬蟲主要講解了如何使用python編寫一個可以下載多頁面的爬蟲,如何將相對URL轉為絕對URL,如何限速,...
閱讀 2856·2021-11-22 11:56
閱讀 3559·2021-11-15 11:39
閱讀 904·2021-09-24 09:48
閱讀 763·2021-08-17 10:14
閱讀 1329·2019-08-30 15:55
閱讀 2758·2019-08-30 15:55
閱讀 1315·2019-08-30 15:44
閱讀 2785·2019-08-30 10:59