输出多次

  • 本文关键字:输出 ruby nokogiri
  • 更新时间 :
  • 英文 :


我有以下代码:

require 'rubygems'
require 'nokogiri'
require 'open-uri'
time = Time.new
url = "http://mobile.bahn.de/bin/mobil/bhftafel.exe/dox?input=Richard-Strauss-Stra%DFe%2C+M%FCnchen%23625127&date=" + 
  time.strftime("%d%m%Y") +
  "&time=" +
  time.strftime("%H") +
  "%3A" +
  time.strftime("%M") +
  "&productsFilter=1111111111000000&REQTrain_name=&maxJourneys=10&start=Suchen&boardType=Abfahrt&ao=yes"
doc = Nokogiri::HTML(open(url))
doc.xpath('//div//p').remove
doc.encoding = 'UTF-8'
doc = doc.xpath('//div').each do |node|
  text = node.text.gsub(/n([ t]*n)+/,"n",).gsub(/^s+|s+$/,'').gsub("Startseite", '').gsub("Impressum", '')
  puts text unless text.empty?
end

我有两个问题:

  1. 代码输出三次而不是一次
  2. 德语中的"元音变音符"类似于äü

原始HTML很长,没有缩进,因此很难调试。

但我认为你需要更换:

doc = doc.xpath('//div').each do |node|

带有:

doc = doc.xpath('//body/div').each do |node|

第一个也包括所有的<div>元素,因此它包括//body/div,然后在//body/div 中单独包括<div>

使用puts,我对元音变音符字符没有任何问题,但在将它们写入文件时确实遇到了问题。你到底有什么问题?最好在"堆栈溢出"上为变音问题创建一个新问题。

相关内容

  • 没有找到相关文章

最新更新