ruby で nokogiri を使用して Web サイトを parising するのに少し問題があります。
サイトはこんな感じ
<div id="post_message_111112" class="postcontent">
Hee is text 1
here is another
</div>
<div id="post_message_111111" class="postcontent">
Here is text 2
</div>
ここにそれを解析するための私のコードがあります
doc = Nokogiri::HTML(open(myNewLink))
myPost = doc.xpath("//div[@class='postcontent']/text()").to_a()
ii=0
while ii!=myPost.length
puts "#{ii} #{myPost[ii].to_s().strip}"
ii+=1
end
私の問題は、それが表示されるときですHee is text 1
.to_aの後の新しい行のために、
myPost[0] = hee is text 1
myPost[1] = here is another
myPost[2] = here is text 2
各 div を独自のメッセージにしたい。お気に入り
myPost[0] = hee is text 1 here is another
myPost[1] = here is text 2
どうすればこれを解決できますか
更新しました
私は試した
myPost = doc.xpath("//div[@class='postcontent']/text()").to_a()
myPost.each_with_index do |post, index|
puts "#{index} #{post.to_s().gsub(/\n/, ' ').strip}"
end
post.to_s().gsub を入れたのは、gsub が post のメソッドではないことに不満を持っていたからです。しかし、私はまだ同じ問題を抱えています。私は自分の頭を壊すだけで間違ったことをしていることを知っています
更新 2
<br />
新しい行があると言うのを忘れていました
doc.search('br').each do |n|
n.replace('')
end
また
doc.search('br').remove
問題はまだある