У меня есть следующий код:
#/usr/bin/env ruby require 'rubygems' require 'nokogiri' require 'open-uri' require 'cora' require 'eat' #require 'timeout' doc = Nokogiri::HTML(open("http://mobile.bahn.de/bin/mobil/bhftafel.exe/dox?input=Richard-Strauss-Stra%DFe%2C+M%FCnchen%23625127&date=27.01.12&time=20%3A41&productsFilter=1111111111000000&REQTrain_name=&maxJourneys=10&start=Suchen&boardType=Abfahrt&ao=yes")) doc = doc.xpath('//div').each do |node| puts node.content end
Как я могу удалить p-теги и пробелы?
Вот предположение, что вы можете захотеть:
require 'nokogiri' require 'open-uri' doc = Nokogiri::HTML(open("http://mobile.bahn.de/bin/mobil/bhftafel.exe/dox?input=Richard-Strauss-Stra%DFe%2C+M%FCnchen%23625127&date=27.01.12&time=20%3A41&productsFilter=1111111111000000&REQTrain_name=&maxJourneys=10&start=Suchen&boardType=Abfahrt&ao=yes")) doc.xpath('//div//p').remove doc = doc.xpath('//div').each do |node| text = node.text.gsub(/\n([ \t]*\n)+/,"\n").gsub(/^\s+|\s+$/,'') puts text unless text.empty? end
При этом удаляются все элементы <p> из документа, а затем удаляются все пустые строки, начальные и конечные пробелы из текста. В конце концов, он не печатает текст, если результатом была пустая строка.
<p>
Редактировать : Чтобы создать переменную для даты, оберните вышеупомянутое в функцию и используйте строковую интерполяцию для построения вашего URL. Например:
require 'nokogiri' require 'open-uri' def get_data( date ) date_string = date.strftime('%d-%m-%y') url = "http://mobilde.bahn.de/…more…#{date_string}…more…" doc = Nokogiri::HTML(open(url)) # more code from above end