2017-01-11 1 views
1

나는 webscraper을 그리고 난 이미 일부 데이터를 폐기하는 방법을 알고 내가 만든이 코드를 JSON으로 변환 :WebScraping 및 웹 탐색 시뮬레이션

var express = require('express'); 
var fs = require('fs'); 
var request = require('request'); 
var cheerio = require('cheerio'); 
var app  = express(); 
var url = 'http://www.footmercato.net/'; 

request(url, function(err, resp, body) { 
    if (!err) { 
     var $ = cheerio.load(body); 
     var data = []; 
     var i = 1; 
     $('.text').each(function(i, element) { 
     var article = $('p'); 
     var jsObject = { title : "", article : "", date : "" }; 
     var articleTxt = article.text(); 
     jsObject.article = articleTxt; 
     data.push(jsObject); 
     }) 
     var json = JSON.stringify(data); 
     fs.writeFile('output.json', JSON.stringify(json, null, 4), function(err) { 
      console.log('File successfully written!'); 
     }) 
    } 
}); 

    app.listen('8080'); 

하지만 웹 사이트로 이동하고 싶습니다 나는 긁어 모으고, 양식을 작성하고 다른 페이지로갑니다.

내가 cheerio로 할 수 있는지 또는 기존 코드에 어떻게 추가 할 수 있는지 아는 사람이 있습니까?

감사

+0

나는 내가 그들에 모습을거야하지만 난 최선 인 (phamtomJs 또는 casperJS을 연결하는 방법을 찾고 있어요, 당신이 좋아 당신에게 에릭 감사 – superhero

+0

phantomjs 또는 casperjs에서 봐 가지고 제안?) 내 cheerio 코드에 ... –

+0

최고입니다? 음, 캐스퍼는 애플리케이션 로직과 팬텀 사이의 여분의 레이어입니다. 더 나은 것은 없습니다. 코드를 작성할 수준을 결정합니다. 캐스퍼를 사용한 적이 없으며, 사용자 친화적이라고 생각합니다. 팬텀과 함께 cherio를 사용하는 방법? 당신의 예제에서'request'를 사용하는 것과 비슷합니다. 하위 프로세스를 설정하고 출력을 파싱 할 수는 있지만 여기서 설명하는 것이 좋습니다. 프로젝트에서 cherio와 phantom을 사용했지만, 양식을 작성하여 보내야한다고 설명 할 때 웹 페이지를 제어 할 필요가 없었습니다. 그 논리는 당신이 이미 알고 있지 않다면 당신이 팬텀 – superhero

답변

0

당신은 실제로 자신이 브라우저 창을 엽니 다 webdriverio을 사용할 수 있으며, 다음 폼 마우스 클릭을 처리하기 위해 webdriverio api을 통해 DOM을 조작 할 수 있고, 다른 한 페이지에서 이동합니다.

var webdriverio = require('webdriverio'); 
var options = { 
    desiredCapabilities: { 
     browserName: 'firefox' 
    } 
}; 
webdriverio 
    .remote(options) 
    .init() 
    .url('http://www.google.com') 
    .getTitle().then(function(title) { 
     console.log('Title was: ' + title); 
    }) 
    .end(); 
+1

고마워 Alexandru, 그것은 내가 필요로하는 것을 위해 매우 강력하고 perfoect처럼 보입니다. 나는 그것을 시험해 볼 것이다! –

관련 문제