2013-07-01 5 views
-5

나는 이것을 짧게하려고 노력할 것이다. 나는이 웹 사이트에서 정보를 긁어 내려고 노력하고있다 : http://eu.battle.net/wow/en/character/uldaman/Dus/statistic#21:152자바 스크립트를 사용하는 웹 사이트를 웹 스크래핑

그 목록에는 "최고 2 인의 개인 평점"과 그 뒤에 오는 번호가있다. 번호가 내가 찾고있는 번호입니다. 저장된 번호는 정확히 어디에 있으며 어떻게 얻을 수 있습니까?

미리 감사드립니다. 나는 당신을 고려하고

+1

끔찍한 질문을. 지금까지 뭐 해봤 어? 어떻게 데이터를 가져 오는거야? 어떤 프로그래밍 언어를 사용하고 있습니까? 당신은'javascript' 태그를 단 하나뿐입니다. 그게 당신이 쓰고있는 것입니까? 너 어디 뛰고있어? Windows 스크립팅 호스트? Node.js? 다른 것? – Quentin

답변

1

는 jQuery를 사용하고 있습니다 :

$('#cat-152 dt').filter(function() { return $(this).text() == "Highest 2 man personal rating" }).siblings('dd').text() 
+2

코멘트가없는 downvoting은 절름발이입니다 .. – dbf

+0

OP가 "jQuery 사용"이라고 생각하는 이유는 무엇입니까? 'javascript' 태그는 다음과 같이 말합니다 * 프레임 워크/라이브러리 용 태그가 포함되어 있지 않으면 순수한 JavaScript 응답이 필요합니다 *. 이것은 또한 OP가 이미 페이지를 가져오고 거기에서 DOM을 생성하고 페이지에 첨부 된 JS를 실행하는 시스템을 구축했다고 가정합니다 (그리고 그 질문에 대한 증거는 없습니다). – Quentin

+0

사용자가 페이지 원본의 소유자가 아니면 크로스 스크립팅 보안이 차단됩니다. – jeffo

0
var http = require('http'); 
var options = { 
    host: 'eu.battle.net', 
    path: '/wow/en/character/uldaman/Dus/statistic/152' 
}; 

var count = 0; 

http.get(options, function(res) { 

    var data = ""; 

    res.on('data', function (chunk) { 
     data += chunk; 
    }); 

    res.on('end', function(){ 
     var d = data; 
     var payload = d.toString(); 
     var finder = "<dt>Highest 2 man team rating</dt><dd>"; 
     var indexOfHighest2Man = payload.indexOf(finder); 
     var indexOfClosingDD = payload.indexOf("</dd>", indexOfHighest2Man); 

     var count = payload.substr(indexOfHighest2Man, indexOfClosingDD - indexOfHighest2Man); 
     count = count.replace(/\s/g, ""); 
     count = count.replace("<dt>Highest2manteamrating</dt><dd>", ""); 

     //***************** Here is the answer ******************* 
     console.log('Highest 2 man rating ',count); 
     //******************************************************** 
    }) 


}).on('error', function(e) { 
     console.log('ERROR: ' + e.message); 
    }); 
+0

이것은 node.js 스크레이퍼이며, 실행합니다. 그것은 작동합니다! – jeffo

관련 문제