爬取數(shù)據(jù),一條命令生成html界面(限于自己研究)

// fs 模塊可用于與文件系統(tǒng)進(jìn)行交互,所有的文件系統(tǒng)操作都具有同步的、回調(diào)的、以及基于 promise 的形式
const fs = require('fs');

// path 模塊提供了一些實(shí)用工具,用于處理文件和目錄的路徑
const path = require('path');

// 讀取node命令的參數(shù)
const args = process.argv;

// 平臺(tái)名,即文件夾名
let platform  = args[2];

// 文件名
let filename = args[3];

console.log("步驟1===",platform);

console.log("步驟2===",filename);

//先創(chuàng)建data目錄 目錄文件操作存在權(quán)限問題
fs.mkdir(platform, { recursive: true }, (err) => {
  if (err) {
    console.log("步驟3===","文件夾存在")
    return;
  } 
  console.log("步驟3===","創(chuàng)建文件夾成功");
});

// 絕對(duì)路徑
let resultpath = path.resolve(platform);
console.log("步驟5===",resultpath);

// 拼接路徑
let newpath = path.join(resultpath,filename);
console.log("步驟6===",newpath);

let newObj = [{
    "text": "收到快遞了,感覺真心超級(jí)喜歡,超級(jí)劃算,性價(jià)比也很高,完全超出期望值。顏色都很好看,時(shí)尚設(shè)計(jì)新穎,非常大氣,手感非常不錯(cuò),分量也很足,很有質(zhì)感,外部設(shè)計(jì)安全,內(nèi)部結(jié)構(gòu)設(shè)計(jì)合理,配件扎實(shí)考究,做工用料上乘,獨(dú)立包裝,試用過插拔也很順暢,絕對(duì)物有所值,上墻絕對(duì)高大上,可以放心購(gòu)買,非常棒棒噠",
    "images": ["http://img30.360buyimg.com/n0/s48x48_jfs/t1/140364/37/10623/224833/5f852d8aEee0c20a1/b79d41e7d29b12f2.jpg"]
}, {
    "text": "買了好久,一直等裝上了才來評(píng)價(jià)!質(zhì)量很好,應(yīng)該是正品,一點(diǎn)也沒有弄錯(cuò)數(shù)量,贊一個(gè)!就是我拍的這些東西分了四個(gè)包裹發(fā)出來,白色新款很漂亮,低調(diào)奢華的感覺!都說開關(guān)的聲音很好,全屋智能系統(tǒng)都使用歐瑞博家居,覺得真的挺好的!",
    "images": ["http://img30.360buyimg.com/n0/s48x48_jfs/t1/154269/37/2161/102280/5f852ce8E0a33ee1b/f7880e927baff62d.jpg", "http://img30.360buyimg.com/n0/s48x48_jfs/t1/122216/29/14726/262231/5f852ceaE7b245256/30487485b78c1eeb.jpg", "http://img30.360buyimg.com/n0/s48x48_jfs/t1/130614/9/12183/224833/5f852cebE4f775d2e/751e76c42d650e76.jpg"]
}, {
    "text": "外形美觀  搭配超級(jí)開關(guān)使用效果好",
    "images": []
}];


// 創(chuàng)建文件并寫入內(nèi)容
fs.writeFile(newpath + ".txt", JSON.stringify(newObj), function(err) {
    if(err) {
        console.log("步驟4===",err);
        return; 
    }
    console.log("步驟4===","寫入成功");
});

// 刪除文件
fs.unlink(filename+".txt",function(err){
    if(err) {
        console.log("步驟7===",err);
        return; 
    }
    console.log("步驟7===","文件已被刪除");
})

// fs.writeFile(filename + ".txt", JSON.stringify(newObj), function(err) {
//     if(err) {
//      console.log("步驟9===",err);
//         return; 
//     }
//     console.log("步驟9===","寫入成功");
// });

// 判斷文件是否存在
fs.exists(filename+".txt",function(exists){
    if(exists) {
        console.log("步驟8===","文件存在");
        return; 
    }
    console.log("步驟8===","文件不存在");
});


// html
let content1 = "<!doctype html>";
    content1    +="<html>";
    content1    +="<head>";
    content1    +='<meta charset="utf-8">';
    content1    +="</head>";
    content1    +="<body>";
     
let content2    ="</body>";
    content2    +="</html>";

    

// 讀取文件
// 異步讀取
let resultpath1 = path.resolve("tbno1.txt")
fs.readFile(resultpath1, function (err, data) {
   if (err) {
        console.log("步驟9===",err);
        return;
   }
   console.log("步驟9===異步讀取: " + data.toString());
   let newdate = JSON.parse(data);
   let result = "<ul>";
   for(let i=0;i<newdate.length;i++){
        result+=`<li>第${i}條:<p>${newdate[i].text}</p>`;
        if(newdate[i].images.length>0){
            let newImage = "<div>"
            for(let j=0;j<newdate[i].images.length;j++){
                newImage+=`<img src="https:${newdate[i].images[j]}" width="50px">`;
            }
            newImage+="</div>";
            result+=newImage+'</li>';
        }
   }
   result+="</ul>";

   // html 內(nèi)容
   let total = content1+result+content2;

   // 拼接路徑
    let newhtmlpath = path.join(resultpath,"show.html");

   // 創(chuàng)建文件并寫入內(nèi)容
    fs.writeFile(newhtmlpath, total, function(err) {
        if(err) {
            console.log("步驟10===",err);
            return; 
        }
        console.log("步驟10===","寫入成功");
    });

});

命令為:nodetest1.js為執(zhí)行文件所在目錄,android為生成的目標(biāo)文件夾,basepage為生成的文件

node nodeTest1.js android basepage
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 最近有好多需求是把一堆圖片,或者一張長(zhǎng)圖轉(zhuǎn)成HTML文件在客戶端展示,所以想嘗試自動(dòng)化這一過程,簡(jiǎn)單實(shí)驗(yàn)了一個(gè)HT...
    趙萱_dily閱讀 853評(píng)論 0 0
  • http://www.itdecent.cn/p/7c288a17cda8 總的來說,Android的系統(tǒng)體系結(jié)...
    燕京博士閱讀 1,415評(píng)論 0 6
  • 登錄 完整的遠(yuǎn)程登錄方式:ssh -p 端口號(hào) 用戶名:用戶密碼@服務(wù)器地址注:其中的端口號(hào)默認(rèn)是22,默認(rèn)值可以...
    簡(jiǎn)公孫策閱讀 460評(píng)論 0 0
  • 視頻鏈接 0 背景 我們網(wǎng)易前端技術(shù)部 - 移動(dòng)技術(shù)組作為公司的移動(dòng)端基礎(chǔ)技術(shù)部門,主要為其他部門提供解決方案、技...
    zyl06閱讀 2,813評(píng)論 0 17
  • 深度長(zhǎng)文:細(xì)說iOS代碼簽名 0x00 前言 2008年蘋果發(fā)布iOS2.0時(shí)引入了強(qiáng)制代碼簽名(Mandator...
    張賀通閱讀 576評(píng)論 0 0

友情鏈接更多精彩內(nèi)容