<ul id="g60s4"><pre id="g60s4"></pre></ul>
<strong id="g60s4"><nav id="g60s4"></nav></strong>
<ul id="g60s4"></ul>
  • <tr id="g60s4"></tr>
  • 
    
  • 或者

    NodeJS在SEO中的應用

    作者:聚擎 瀏覽:163 發布時間:2017-10-28
    分享 評論 0

     NodeJS是最近非常火的一個JS框架,百科的介紹是輕量高效的基于事件驅動的JS運行平臺。

     

      使用NodeJS的原因有3個,一是它的代碼寫法基于JS,比較容易寫。已經有入門級別的經驗了。另一個就是它的一個庫Cheerio,可以用幾乎和jQuery一模一樣的方式來操作源碼里面的Dom元素。這個什么意思稍候會講。第三個是它可以做為本地端,也可以布到服務器上去。

     

      這2天研究比較多,應該算是初級入門了。正好有個需求要處理,于是應用了NodeJS。

     

      一、安裝

     

      網上有很多的教程,下載到https://nodejs.org,在Win系統下運行就可以搭上一個環境。下載Windows的Installer版本,雙擊安裝,就成功了。

     

      然后配置神器Sublime開始使用。

     

      為Sublime添加實時調試運行,打開Sublime-》Tools-》Build System-》New Build System

     

      在新打開的文件中寫入下面的代碼

      {

      "cmd": ["node", "$file"],

      "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",

      "selector": "source.javascript"

      }

      然后保存為NodeJS.sublime-build.

     

      新建一個采集.js文件,設為NodeJS進行運行調試。

      

    1

      二、注意

     

      在nodejs里面需要require(庫名)的方式來引用一些外部的庫,這些外部的庫安裝NodeJS的時候,已經放在C盤的programfiles下面了。但是直接require是無效的。

     

      因為NodeJS提倡的是自己的代碼用自己的庫,所以還需要把庫復制到采集.js這個文件下面。

     

      引用的時候可以通過npm link 庫名的方式,來把系統C盤的庫引用到我們的項目下面。

      

    2

      三、直接使用了

     

      //采集頁面內容到本地

      var http = require("http");

      var cheerio = require('cheerio'); //引用cheerio模塊,使在服務器端像在客戶端上操作DOM,不用正則表達式,據基準測試:cheerio大約比JsDom快8倍。

      var iconv = require('iconv-lite'); //解決編碼轉換模塊

      var BufferHelper = require('bufferhelper'); //關于Buffer我后面細說

      var data=download('http://blog.csdn.net/kissliux/article/details/20466889',function (data) {

      //console.log(data);

      var $=cheerio.load(data);//載入到cheerio進行分析

      //遍歷DIV

      // $('a').each(function(i,e){

      // console.log($(e).attr('href'));

      // });

      // 遍歷鏈接

      // $("a.downbtn").each(function(i, e) {

      // console.log($(e).attr("href"));

      // });

      //var title=$('head>title').text();//讀取Title信息

      //console.log(title);

      //分析得到頁面基本信息

      var page = {

      "document": {

      title: $('head>title').text(),

      meta: {

      title: $('meta[property="og:title"]').attr("content"),

      author: $('meta[property="og:author"]').attr("content"),

      description: $('meta[name="description"]').attr("content"),

      url: $('meta[property="og:url"]').attr("content"),

      type: $('meta[property="og:type"]').attr("content"),

      image: $('meta[property="og:image"]').attr("content")

      },

      "content": undefined,

      "images": []

      }

      };

      //采集圖片存入列表

      $('img').each(function(){

      var url = $(this).attr('src');

      if (page.document.images.indexOf(url) === -1){

      page.document.images.push(url);

      }

      });

      console.log(page);

      });

      /**

      * 下載源碼,自動識別編碼

      * @param {[type]} url [下載URL]

      * @param {Function} callback [回調]

      * @return {[type]} [description]

      */

      function download(url, callback) {

      http.get(url, function(res) {

      var data = "";

      res.on('data', function (chunk) {

      data += chunk;

      });

      res.on("end", function() {

      callback(data);

      });

      }).on("error", function(e) {

      console.log("Got error: " + e.message);

      callback(null);

      });

      }

     

      上面我封好了download下載Html的內容。并進行處理的簡單示例。注意require的庫必須使用npm link 庫名克隆到本地,或者自己下載包放到采集.js下面的node_modules目錄下面,如果 沒有這個目錄,自己創建。

     

      其中:

     

      使用Cheerio要取頁面的H1標題就簡單了

     

      var title=$('#article_details h1 a').text().trim();//讀取Div下面的H1標簽文本。

     

      有沒有jQuery強到爆的感覺。想分析頁面什么的,還用正則嗎?不用了。還用分析嗎?不用了。找個大的Div,直接就讀出來了。C#當然也可以用Htmp Agility pack來解析Dom。

     

      但是為此我要新建一個項目,運行,調試,用NodeJS的話,在Sublime里面按Ctrl+B直接運行,可以馬上看到效果。而且可以放到服務端。放到我的服務器上去。諸多好處也不大好形容。如果會點JS代碼的話,上手應該非???。

     

      下面是運行效果

      

    3

      后面我把功能完善一點之后,會分享更完整的功能,讀取文件中的URL采集,采集內容之后內容清洗,放進數據庫或者導出文件。


    日韩人妻无码免费视频一区二区三区 | 久久精品99香蕉国产| 亚洲精品麻豆av| 日韩国产欧美亚洲v片| 日韩精品久久不卡中文字幕| 九九精品久久久久久噜噜| 2020国产精品永久在线观看| 无码少妇精品一区二区免费动态| 国产中老年妇女精品| 中文字幕在线精品| 亚洲精品色午夜无码专区日韩| 国产精品一国产精品| 日韩精品久久无码中文字幕| 久久久九九有精品国产| 91精品国产高清久久久久久io| 国产精品美女WWW爽爽爽视频| 亚洲精品成人区在线观看| 日韩人妻系列无码专区| 日韩毛片在线视频| 亚洲日韩乱码久久久久久| 国产剧情AV麻豆香蕉精品| 国产馆精品推荐在线观看| 精品久久久无码中字| 在线精品免费视频无码的| 久久亚洲欧美国产精品| 久久久久无码精品国产app | 日韩精品中文字幕在线| 国产日韩一区二区三区在线播放| 亚洲日韩乱码中文无码蜜桃臀网站 | 亚洲av午夜福利精品一区| 久久国产精品久久国产精品| 国产精品无码a∨精品| 青青草国产精品久久久久| 久久精品国产成人| 久久香综合精品久久伊人| 99ri在线精品视频| 亚洲国产精品成人精品小说| 激情亚洲一区国产精品| 2021国产精品视频| 亚洲精品人成网线在线播放va | 国产午夜精品久久久久九九电影 |