2017-04-10 2 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!'); 
    }); 
} 

예상 결과 : 여기 내 코드는 필드 이름

'Url" 

그 빈 CSV 파일 : 포함 된 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' ] } ] 

실제 행동을 파일로 저장됩니다. 크롤링 된 결과를 캡처하지 않았습니다. 나는 뭔가를 놓치고있다. 이것에 대한 조언은 도움이 될 것입니다.

답변

1

데이터에 'url'필드가 없습니다. 'helpURL'을 원하셨습니까?

+0

안녕하세요 @Chris Browne thats right. 나는 console.long (data.results)의 결과를 작성하고 싶었다. CSV 파일에 – syndy1989

관련 문제