<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Node實現CSDN博客導出(后續)

      前言

      在2021年我實現了一個Node導出博客的功能:爬取接口及博客頁面并導出為md文件格式。中途有許多迭代及優化以及解決了一些關鍵問題,寫篇文章做個記錄和review

      博客更新功能

      在原有的導出功能上增加了博客更新的功能,避免了每次都全部導出,是否消耗時間。在命令中新增-update命令進行升級操作,如使用node server -type:csdn -id:time_____ -update
      更新時會對比博客名稱是否存在,如果沒有則會單獨導出這篇文章。核心代碼是

        startLoadBlogItem: async () => {
          const newData = getBlogConfig().blogList;
          let temp = newData;
          console.log(`獲取列表成功,共${newData.length}篇文章`);
          if (global.update) {
            const oldData = (await readFile(global.type, "./temp/")).toString(
              "utf-8"
            );
            // temp表示待導出的博客列表
            temp = getArrayAddItems(stringToJson(oldData) ?? [], newData);
            console.log(`本次更新${temp.length}篇文章`);
          }
          writeFile(global.type, JSON.stringify(newData), "./temp/");
          return messageCenter.emit("getBlogInfo", temp);
        },

      以及下面的更新數據操作,我的做法是在根目錄新增了一個文章緩存的temp目錄,第一次加載時會將文章列表存在文件中,后續update時只需對比一下列表長度并截取新增的文章列表即可

      // 獲取數組更新項
      function getArrayAddItems(oldList = [], newList = [], key = "title") {
        return newList.filter((it) => !!!oldList.find((i) => i[key] === it[key]));
      }

      具體改動見:博客更新

      同時,我們可以在Jenkins中修改一下pipeline,以及使用構建觸發器通過定時自動觸發,這樣就可以每天自動更新博客了

      圖片防盜鏈

      由于爬取博客使用的是原圖片,一般圖片都會使用圖片防盜鏈防止異常請求,如果使用非法Referer訪問對方的資源就會拋錯

      如果使用瀏覽器打開就正常此時就來到了第二個優化點:反代,使用replace替換原有的img地址到我的本地nginx服務器上,下面是代碼中的修改點

      // 替換圖片地址,拿nginx做個代理
      function replaceImgUrl(content) {
        const { imgUrl, imgProxyUrl } = getBlogConfig();
        const rule = new RegExp(`(${imgUrl})`, "g");
        return content.replace(rule, imgProxyUrl);
      }

      以及commit

      參照之前的文章:Nginx常用指令,基本配置,反向代理_DieHunter1024的博客-CSDN博客

      我們在自己nginx的服務器中新建一個路由,配置反代,使訪問/csdnImg/的請求都代理到圖片的路徑中

              location /csdnImg/ {
                  proxy_pass https://img-blog.csdnimg.cn/;
              }

      然而使用了之后依舊是403

      由于HTTP Referer防盜鏈的校驗,我們需要在nginx中增加Referer偽裝繞過校驗,此外,我們可以增加User-Agent偽裝隱藏真實身份、繞過一些限制,偽裝成瀏覽器防止封禁

              location /csdnImg/ {
                  proxy_pass https://img-blog.csdnimg.cn/;
                  proxy_set_header User-Agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36";
                  proxy_set_header Referer "http://blog.csdn.net/";
              }

      以上就是文章的全部內容,希望能幫助你

      源碼地址:blog_website: 基于 node 編寫的CSDN博客導出的爬蟲腳本+hexo部署

      posted @ 2023-04-24 10:09  阿宇的編程之旅  閱讀(44)  評論(0)    收藏  舉報  來源
      主站蜘蛛池模板: 亚洲综合色婷婷中文字幕| 欧洲亚洲精品免费二区| 亚洲天堂久久一区av| 97成人碰碰久久人人超级碰oo| 久久香蕉国产线看观看猫咪av| 午夜毛片精彩毛片| 廉江市| 色综合伊人色综合网站| 深夜av在线免费观看| 婷婷丁香五月亚洲中文字幕| 老司机午夜福利视频| 精品人妻蜜臀一区二区三区| 国产精品久久蜜臀av| 成人无码午夜在线观看| 国产精品亚洲二区在线播放| 亚洲av成人一区在线| 麻豆tv入口在线看| 国产精品一区二区小视频| 国产女人喷潮视频免费| 久久精品女人天堂av| 九九热爱视频精品视频| 亚洲高清 一区二区三区| 国产免费无遮挡吸奶头视频| 狠狠躁夜夜躁人人爽天天古典| 黄色三级亚洲男人的天堂| 亚洲男人av香蕉爽爽爽爽| 久久精品午夜视频| 国产精品亚洲二区在线看| 无码福利一区二区三区| 欧美亚洲综合久久偷偷人人| 97成人碰碰久久人人超级碰oo| 艳妇乳肉豪妇荡乳av| 国产女高清在线看免费观看| 中文 在线 日韩 亚洲 欧美| 国产愉拍精品手机| 麻豆亚州无矿码专区视频| 中文字幕V亚洲日本在线电影| 新龙县| 激情五月日韩中文字幕| 狠狠爱五月丁香亚洲综| 亚洲中文字幕日产无码成人片 |