當前位置 主頁 > 網站技術 > 代碼類 > 最大化 縮小

    node爬取新型冠狀病毒的疫情實時動態(2)

    欄目:代碼類 時間:2020-02-06 21:06

    用fs寫入到文件中:

    /* fs.wirteFile有三個參數
      * 1,第一個參數是要寫入的文件路徑
      * 2,第二個參數是要寫入得內容
      * 3,第三個參數是可選參數,表示要寫入的文件編碼格式,一般就不寫,默認就行
      * 4,第四個參數是個回調函數 只有一個參數error,來判斷是否寫入成功
      */
    fs.writeFile("./coronavirus.php",$menu_box.html(),error=>{
      if(error) return console.log("寫入文件失敗,原因是:"+error.message);
      console.log('寫入成功');
    });

    引入到網站中:

    我是直接把它放在頭部,局部代碼如下:

    <div >
      <style type="text/css">
        .title___2d1_B img {
          width: 18px;
          height: 18px;
          cursor:pointer;
        }
        #novel_coronavirus {
          text-align: center;
          position:relative;
          top:50px;
          background-color:rgba(255,255,255,0.7);
        }
        #novel_coronavirus li {
          margin: 10px;
          padding:2px;
          border:1px slide #000;
        }
        #novel_coronavirus ul li { 
          list-style:none;
          display: inline-block;
        }
        .count___3GCdh p{
          font-size:12px;
        }
        .count___3GCdh span{
          font-size:20px;
        }
      </style>
      <div  > 
        <strong><p >新型冠狀病毒疫情實時動態</p></strong>
        <?php require("./test/coronavirus.php");?>
      </div>
    </div>
    
    

    服務器上運行的完整代碼:

    CronJob的定時參數是 秒 分鐘 小時 天 月份 星期。這里我設置成了每分鐘爬取一次。(我是用mstsc遠程連接后運行node coronavirus.js的,這樣關閉遠程桌面連接后,服務器依然會每分鐘爬取一次丁香醫生上的新型冠狀病毒的全國疫情實時動態。 

    const cheerio = require('cheerio');
    const puppeteer = require('puppeteer');
    const fs = require('fs');
    var cronJob = require('cron').CronJob;
    new cronJob('0 */1 * * * *',function(){
     update();
    },null,true);  //每分鐘執行一次
    //爬取全國新型肺炎疫情實時動態并寫入到指定的.php文件
    function update() {
     (async () => {
      const browser = await puppeteer.launch({args: ['--no-sandbox', '--disable-setuid-sandbox']});
      const page = await browser.newPage();
      await page.goto('https://ncov.dxy.cn/');
      const frame = await page.mainFrame();
      const bodyHandle = await frame.$('html');
      const html = await frame.evaluate(body=>body.innerHTML,bodyHandle);
      await bodyHandle.dispose();
      browser.close();
      var $ = cheerio.load(html);
      var $menu_box = $(".statistics___1cFUQ");
      fs.writeFile("coronavirus.php",$menu_box.html(),error=>{
       if(error) {
        console.log("寫入文件失敗,原因是:"+error.message);
       } else { 
        console.log('更新成功');
       }
      });
     })();
    }
    
    

    查看我的網站 

    總結

    以上所述是小編給大家介紹的node爬取新型冠狀病毒的疫情實時動態,希望對大家有所幫助!

777亚洲人成视频免费视频