2014-06-20 244 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