Filmnächte-Scraping: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Astro (Diskussion | Beiträge) K (Initiative Wikis müssen eine berechenbare Syntax haben) |
(This page must use the Rübÿ Spëëd Mëtäl Cödïng template!!!111) |
||
Zeile 1: | Zeile 1: | ||
Bald sind wieder, ganz hipp, '''Filmnächte am Elbufer'''. Leider ist auf http://filmnaechte-am-elbufer.de/ keine sofort verwertbare Information zu finden. | Bald sind wieder, ganz hipp, '''Filmnächte am Elbufer'''. Leider ist auf http://filmnaechte-am-elbufer.de/ keine sofort verwertbare Information zu finden. | ||
<pre>require 'htree' | <pre>require 'htree' | ||
# | # | ||
# Saugen | # Saugen | ||
# | # | ||
#system("wget -O programm.html 'http://filmnaechte-am-elbufer.de/fn.php?idx=20'") | #system("wget -O programm.html 'http://filmnaechte-am-elbufer.de/fn.php?idx=20'") | ||
# | # | ||
# Parsen | # Parsen | ||
# | # | ||
doc = HTree(File.new('programm.html')).to_rexml | doc = HTree(File.new('programm.html')).to_rexml | ||
events = [] | events = [] | ||
Zeile 20: | Zeile 14: | ||
text = span.text.to_s | text = span.text.to_s | ||
text.gsub!(/\ ./, ' ') | text.gsub!(/\ ./, ' ') | ||
spans[span.attributes['class']] = text if text.size > 0 | spans[span.attributes['class']] = text if text.size > 0 | ||
if span.attributes['class'] == 'progTitle' | if span.attributes['class'] == 'progTitle' | ||
events << spans | events << spans | ||
Zeile 30: | Zeile 22: | ||
end | end | ||
} | } | ||
# | # | ||
# Ausgabe tabellarisch | # Ausgabe tabellarisch | ||
# | # | ||
column_sizes = Hash.new(0) | column_sizes = Hash.new(0) | ||
events.each { |event| | events.each { |event| | ||
Zeile 42: | Zeile 31: | ||
} | } | ||
} | } | ||
events.each { |event| | events.each { |event| | ||
ptsd = event['progTitleSpecialDay'] | ptsd = event['progTitleSpecialDay'] | ||
Zeile 49: | Zeile 37: | ||
}.to_s.strip + (ptsd ? " (#{ptsd.strip})" : "") | }.to_s.strip + (ptsd ? " (#{ptsd.strip})" : "") | ||
}</pre> | }</pre> | ||
[[Kategorie:Ruby]] | |||
{{Rübÿ Spëëd Mëtäl Cödïng}} |
Version vom 10. Juli 2006, 19:23 Uhr
Bald sind wieder, ganz hipp, Filmnächte am Elbufer. Leider ist auf http://filmnaechte-am-elbufer.de/ keine sofort verwertbare Information zu finden.
require 'htree' # # Saugen # #system("wget -O programm.html 'http://filmnaechte-am-elbufer.de/fn.php?idx=20'") # # Parsen # doc = HTree(File.new('programm.html')).to_rexml events = [] spans = {} doc.each_element('/html/body//table[@style=\'width: 488px\']/tr/td//span') { |span| text = span.text.to_s text.gsub!(/\ ./, ' ') spans[span.attributes['class']] = text if text.size > 0 if span.attributes['class'] == 'progTitle' events << spans spans = {'progDay'=>spans['progDay'], 'progTime'=>spans['progTime'], 'progWeek'=>spans['progWeek']} end } # # Ausgabe tabellarisch # column_sizes = Hash.new(0) events.each { |event| event.each { |column,cell| column_sizes[column] = cell.size if cell.size > column_sizes[column] } } events.each { |event| ptsd = event['progTitleSpecialDay'] puts %w(progWeek progDay progTime progTitle).collect { |column| event[column].ljust(column_sizes[column] + 2) }.to_s.strip + (ptsd ? " (#{ptsd.strip})" : "") }
Rübÿ Spëëd Mëtäl Cödïng
Projects: CacaANSICam | Date Determinator | DVB-Scraping | Filmnächte-Scraping | GeeKal | Gruntmaster | Harvester | Hirn | Irb | Jargon-File | Ruby-MediaWiki | Miniwebserver | Momomoto | Pentabarf | Podcast-fetching | Ruby | Ruby-Geekend | Ruby und Ruby on Rails | Sedusa | VDS-Badges | Xmotoctl | Youtube-Scraping