2014-06-20 6 views
0

일부 nodejs를 가지고 노는 것과 나에게 몇 가지 문제점이 있습니다.데이터 추출

일부 html 파일을 사용할 수 있으며 일부 데이터를 배열로 추출하려고합니다. 몇 가지 기본 사항을 추가 할 수 있지만 좀 더 자세한 데이터를 얻으려고 노력했습니다. 여기

내 HTML 부분입니다 : 내가 생각하는 방법을

<hr> 
<h1>Topic</h1> 
written by&nbsp;<font color=#ffffff>sCHween</font>&nbsp;&nbsp;am&nbsp;18.06.2014&nbsp;at&nbsp;21:26:15 
<hr> 
This is my test to extract some data! 
<hr> 

하고 여기에 내가 할 수

jsdom.env({ 
html: body, 
scripts: ['http://code.jquery.com/jquery-2.1.1.min.js'], 
done: function(errors, window) { 
var $ = window.jQuery; 
$body = $(iconv.decode(new Buffer(body), "ISO-8859-1")), 

self.items[0] ={ 
    topic: $body.find('h1:eq(1)').text(), 
    author: $body.find('font[color=#ffffff]').first().text(), 
    date: {should be 18.06.204}, 
    time: {should be 21.26.15}, 
    text: $body.find('hr:eq(1)').nextSibling 
} 

console.log(self.items); 
res.end(''); 
} 

내 질문 : 나는 내가 가까이 얻을 수있는 방법 단서가 없다

날짜와 시간? 두 hr 태그 사이에 텍스트를 어떻게 가져올 수 있습니까?

나에게는 마무리 솔루션을 기대하지 않습니다. 내 목표를 달성하는 방법에 대해 아이디어를 줄 수 있다면 더 좋을 것입니다.

덕분에 많은 &는 sCHween가

답변

0
<hr> 
<h1>Topic</h1> 
<b>written by&nbsp;<font color=#ffffff>sCHween</font>&nbsp;&nbsp;am&nbsp;18.06.2014&nbsp;at&nbsp;21:26:15</b> 
<hr> 
<i>This is my test to extract some data!</i> 
<hr> 
<p></p> 

이 잘 정의되지 않은 기능을 가지고 좋은 일을해야합니다. 은 내 예시와 같아야합니다.

var topic= $('h1:eq(0)').text(), 
     author= $('font[color=#ffffff]').first().text(), 
     text= $('i:eq(0)').text(), 
     date=$('b').text().match(/(\d+)/g); 
    var myArray = [ topic, author, text ]; 
    console.log(myArray); 
+0

의견에 감사드립니다. JSFiddle에서 놀았고 효과가있었습니다. 그 후 내 코드가 이렇게 바뀌면 결과는 : 9iFab입니다. 내가 중요한 것을 놓친 건가? – sCHween