久草中文在线观看_久久精品中文字幕一区_亚洲日本欧美日韩中文字幕_熟妇人妻无乱码中文字幕真矢织江

或者

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采集,采集內容之后內容清洗,放進數據庫或者導出文件。


久草中文在线观看_久久精品中文字幕一区_亚洲日本欧美日韩中文字幕_熟妇人妻无乱码中文字幕真矢织江
<code id="6mcsu"></code>
<li id="6mcsu"></li>
<li id="6mcsu"><dl id="6mcsu"></dl></li>
  • <code id="6mcsu"><tr id="6mcsu"></tr></code>
    欧美一区二区三区喷汁尤物| 国产精品伦一区| 青青草97国产精品免费观看| 欧美一卡2卡三卡4卡5免费| 经典三级一区二区| 国产欧美一区二区精品婷婷| 成人av资源下载| 亚洲精品国产高清久久伦理二区| 日本韩国一区二区三区| 日韩国产在线观看一区| 精品欧美乱码久久久久久1区2区| 国产福利视频一区二区三区| 国产精品久久久久久亚洲毛片| 色乱码一区二区三区88| 免费高清不卡av| 欧美韩日一区二区三区四区| 欧美性极品少妇| 久久99久久精品| 亚洲日本免费电影| 欧美日本在线播放| 久久99国产精品久久99果冻传媒| 欧美极品美女视频| 欧美网站一区二区| 激情国产一区二区 | 91精品国产91综合久久蜜臀| 欧美日韩在线一区二区| 精品久久久久久久久久久院品网| 国产一区二区按摩在线观看| 欧美国产日韩精品免费观看| 91免费小视频| 免费人成在线不卡| 中文字幕一区二区三中文字幕| 欧美日韩精品一区二区三区| 国产馆精品极品| 亚洲国产cao| 日本一区二区三区高清不卡| 欧美三级中文字幕| 福利一区福利二区| 日本不卡一二三| 亚洲女人的天堂| 久久一二三国产| 欧美精品一级二级| av成人免费在线观看| 久久精品国产精品亚洲红杏| 一区二区三区在线视频免费观看| 久久色视频免费观看| 欧美日韩精品一区二区| 波多野结衣一区二区三区| 日本在线观看不卡视频| 亚洲色图在线视频| 久久综合国产精品| 欧美军同video69gay| 91麻豆免费观看| 国产伦精一区二区三区| 日韩精品亚洲一区二区三区免费| 国产精品国产三级国产aⅴ无密码| 欧美大片国产精品| 欧美午夜电影网| 99久久久久免费精品国产 | 国内外成人在线| 亚洲免费观看高清完整版在线观看熊| 制服视频三区第一页精品| 成人av资源在线| 激情六月婷婷综合| 日本不卡一二三区黄网| 亚洲中国最大av网站| 国产精品第13页| 久久婷婷色综合| 在线观看91精品国产麻豆| 色天天综合久久久久综合片| 成人国产精品视频| 国产精品99久| 国产在线不卡一卡二卡三卡四卡| 热久久国产精品| 亚洲观看高清完整版在线观看 | 3d动漫精品啪啪1区2区免费| gogo大胆日本视频一区| 九九国产精品视频| 男男视频亚洲欧美| 午夜a成v人精品| 亚洲曰韩产成在线| 国产大片一区二区| 日韩专区一卡二卡| 亚洲午夜久久久久中文字幕久| 亚洲三级小视频| 综合色中文字幕| 日韩理论片中文av| 亚洲视频你懂的| 亚洲天堂免费看| 国产精品国产三级国产aⅴ中文| 亚洲国产精品国自产拍av| 久久久久国产精品人| 精品处破学生在线二十三| 欧美v亚洲v综合ⅴ国产v| 欧美一区二区国产| 91精品婷婷国产综合久久| 欧美日韩一卡二卡三卡| 欧美三级电影在线观看| 欧美吻胸吃奶大尺度电影| 欧美亚洲国产bt| 欧美探花视频资源| 欧美午夜精品一区二区三区| 欧美三级一区二区| 精品视频一区三区九区| 欧美熟乱第一页| 欧美美女激情18p| 欧美一区午夜精品| 精品剧情在线观看| 国产丝袜美腿一区二区三区| 在线观看网站黄不卡| 成人美女在线观看| 福利91精品一区二区三区| 懂色av一区二区三区免费看| 成人毛片老司机大片| 成人不卡免费av| 一本一道综合狠狠老| 欧美影院精品一区| 欧美顶级少妇做爰| 欧美r级在线观看| 久久精品免费在线观看| 欧美激情自拍偷拍| 亚洲免费在线看| 亚洲高清不卡在线观看| 免费日韩伦理电影| 国产一区二区三区免费| 成人av资源站| 欧美少妇bbb| 欧美一区二区日韩| 久久免费偷拍视频| 国产精品美女久久久久aⅴ| 亚洲欧美日韩中文播放| 亚洲成人动漫一区| 另类欧美日韩国产在线| 国产传媒欧美日韩成人| 色综合中文综合网| 一个色综合网站| 日本va欧美va精品| 亚洲在线视频一区| 欧美色偷偷大香| 在线播放/欧美激情| 日韩一区二区在线观看| 亚洲精品在线三区| 国产精品看片你懂得| 亚洲综合色噜噜狠狠| 免费久久99精品国产| 国产91色综合久久免费分享| 色猫猫国产区一区二在线视频| 5月丁香婷婷综合| 国产蜜臀av在线一区二区三区| 亚洲免费在线看| 久久精品国产在热久久| 成人97人人超碰人人99| 欧美久久一区二区| 国产偷国产偷精品高清尤物| 亚洲欧洲av色图| 蜜桃精品在线观看| 99re热视频精品| 日韩一级片在线观看| 国产欧美日韩亚州综合| 午夜伦欧美伦电影理论片| 国产精品亚洲成人| 精品视频一区二区三区免费| 久久精品视频在线免费观看| 夜夜嗨av一区二区三区网页 | 国产成人午夜高潮毛片| 精品视频999| 国产欧美日韩亚州综合| 日韩精品久久理论片| 成人污视频在线观看| 欧美疯狂性受xxxxx喷水图片| 中文字幕av一区二区三区| 日韩中文字幕1| 91在线观看污| 精品蜜桃在线看| 亚洲最大色网站| 成人黄色软件下载| 精品午夜一区二区三区在线观看| 粉嫩欧美一区二区三区高清影视| 欧美日韩和欧美的一区二区| 欧美国产精品专区| 日本不卡一区二区| 91香蕉国产在线观看软件| 日韩精品一区二区三区中文不卡| 亚洲免费在线视频| 国产黄色成人av| 日韩午夜av电影| 尤物在线观看一区| 国产91丝袜在线播放九色| 欧美一区二区三区视频免费 | 91小宝寻花一区二区三区| 亚洲精品一区二区三区蜜桃下载 | 91色porny在线视频| 精品国产乱码久久久久久图片| 亚洲国产乱码最新视频| 成人av在线播放网站| 精品精品欲导航| 日韩极品在线观看| 色欧美乱欧美15图片| 国产精品美女久久久久久| 韩国精品主播一区二区在线观看|