簡體   English   中英

如何操作從X射線刮刀(node.js)檢索的默認值

[英]How to manipulate default value retrieved from x-ray scraper (node.js)

這是我的代碼:

var Xray = require('x-ray');  
var x = Xray();
x('http://someurl.com', 'tr td:nth-child(2)', [{  
    text: 'a',
    url: 'a@href'
  }]).write('results.json')

我需要使用每個標記中的第一個單詞填充名為“text”的字段。 標記值的示例:

“FirstWord SecondWord ThirdWord”

實際結果是文本:FirstWord SecondWord ThirdWord

期望的結果文本:FirstWord

我可以對result.json文件進行后期處理,但我不喜歡這樣。

您可以在過濾器中定義您的功能,這在官方Github頁面中顯示

var Xray = require('x-ray');
var x = Xray({
  filters: {
    trim: function (value) {
      return typeof value === 'string' ? value.trim() : value
    },
    reverse: function (value) {
      return typeof value === 'string' ? value.split('').reverse().join('') : value
    },
    slice: function (value, start , end) {
      return typeof value === 'string' ? value.slice(start, end) : value
    }
  }
});

x('http://mat.io', {
  title: 'title | trim | reverse | slice:2,3'
})(function(err, obj) {
/*
  {
    title: 'oi'
  }
*/
})

有一個由cbou制作的x射線庫
它的自定義x-ray API具有可以改變輸出的功能准備
https://github.com/cbou/x-ray#xrayprepare-str--fn

例:

function uppercase(str) {
  return str.toUpperCase();
}

xray('mat.io')
.prepare('uppercase', uppercase)
.select('title | uppercase')
.run(function(err, title) {
  // title == MAT.IO
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM