2017-04-10 24 views
0

JavaScriptを使用してクロールされたURLのみを配列に保存します。ここに私のコードは次のとおりです。CSVファイルを書き込めません

var AxeBuilder = require('axe-webdriverjs'); 
var WebDriver = require('selenium-webdriver'); 
var json2csv = require('json2csv'); 
var fs = require('fs'); 
var crawled=''; 

var driver = new WebDriver.Builder() 
    .forBrowser('firefox') 
    .build(); 

driver 
    .get('https://www.ally.com') 
    .then(function() { 
    AxeBuilder(driver) 
     .analyze(function (results) { 
     console.log(results.violations); 
     }); 
    }); 

    const CrawlKit = require('crawlkit'); 
const AxeRunner = require('crawlkit-runner-axe'); 

const crawler = new CrawlKit('https://www.ally.com'); 
// You could add a finder here in order to audit a whole network of pages 
crawler.addRunner('aXe', new AxeRunner()); 

crawler.crawl() 
    .then((data) => { 
     { 
     console.log(JSON.stringify(data.results, true, 2)); 
     console.log(data.results.length); 
    } (err) => console.error(err) 



    var crawled = []; 
      for (var i = 0; i < data.results.length; i++) 
      { 
      crawled.push({ 

       'url': data.results[i] 

      }); 
      } 

      }); 
    //storeCSV(crawled); 
console.log(crawled); 
var csv = json2csv({ data: crawled, fields: ['url'] }); 
storeCSV(csv); 


function storeCSV(storeJSArray) { 

    fs.writeFile('C:/Users/AppData/Roaming/npm/node_modules/crawl.csv', storeJSArray, function(err) { 
    if (err) throw err; 
    console.log('File saved!'); 
    }); 
} 

期待される結果:CSVとして

[ { description: 'Ensures the contrast between foreground and background colors 
meets WCAG 2 AA contrast ratio thresholds', 
    help: 'Elements must have sufficient color contrast', 
    helpUrl: 'https://dequeuniversity.com/rules/axe/2.1/color-contrast?applicati 
on=webdriverjs', 
    id: 'color-contrast', 
    impact: 'critical', 
    nodes: [ [Object], [Object], [Object], [Object], [Object], [Object] ], 
    tags: [ 'wcag2aa', 'wcag143' ] }, 
    { description: 'Ensures every id attribute value is unique', 
    help: 'id attribute value must be unique', 
    helpUrl: 'https://dequeuniversity.com/rules/axe/2.1/duplicate-id?application 
=webdriverjs', 
    id: 'duplicate-id', 
    impact: 'critical', 
    nodes: [ [Object], [Object], [Object] ], 
    tags: [ 'wcag2a', 'wcag411' ] }, 
    { description: 'Ensures <iframe> and <frame> elements contain a non-empty titl 
e attribute', 
    help: 'Frames must have title attribute', 
    helpUrl: 'https://dequeuniversity.com/rules/axe/2.1/frame-title?application= 
webdriverjs', 
    id: 'frame-title', 
    impact: 'critical', 
    nodes: [ [Object] ], 
    tags: [ 'wcag2a', 'wcag241', 'section508', 'section508.22.i' ] }, 
    { description: 'Ensures every HTML document has a lang attribute', 
    help: '<html> element must have a lang attribute', 
    helpUrl: 'https://dequeuniversity.com/rules/axe/2.1/html-has-lang?applicatio 
n=webdriverjs', 
    id: 'html-has-lang', 
    impact: 'serious', 
    nodes: [ [Object] ], 
    tags: [ 'wcag2a', 'wcag311' ] }, 
    { description: 'Ensures tabindex attribute values are not greater than 0', 
    help: 'Elements should not have tabindex greater than zero', 
    helpUrl: 'https://dequeuniversity.com/rules/axe/2.1/tabindex?application=web 
driverjs', 
    id: 'tabindex', 
    impact: 'serious', 
    nodes: [ [Object], [Object] ], 
    tags: [ 'best-practice' ] } ] 

実際の動作をファイル:

'Url" 

そのフィールド名を持つ空白のCSVファイル。クロールされた結果は取得されていません。私は何かを逃していますか?これに関するアドバイスは参考になります。

答えて

1

データに「url」フィールドはありません。あなたは 'helpURL'を意味しましたか?

+0

こんにちは@Chris Browne thats right。私はconsole.long(data.results)の結果を書きたいと思った。 CSVファイルに – syndy1989

関連する問題