Created
November 18, 2015 18:52
-
-
Save rexcze-zz/66ebdbf28a03c057192f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/ruby | |
require 'rubygems' | |
require 'nokogiri' | |
#require 'elasticsearch' | |
class Clanek | |
def initialize() | |
end | |
def k_skore(k_skore) | |
@k_skore = k_skore.gsub(/[^0-9]/,'') | |
end | |
def k_datum(k_datum) | |
@k_datum = k_datum.gsub(/[^0-9]/,'') | |
end | |
def k_nazev(k_nazev) | |
@k_nazev = k_nazev.delete(' ').strip | |
end | |
def k_rubrika(k_rubrika) | |
@k_rubrika = k_rubrika.delete(' ').strip | |
end | |
def k_puvod(k_puvod) | |
@k_puvod = k_puvod.delete(' ').strip | |
end | |
def k_autor(k_autor) | |
@k_autor = k_autor.delete(' ').strip | |
end | |
def k_zdroj(k_zdroj) | |
@k_zdroj = k_zdroj.delete(' ').strip | |
end | |
def autor(autor) | |
@autor = autor.delete(' ').strip | |
end | |
def cislo(cislo) | |
@cislo = cislo.delete(' ').strip | |
end | |
def datum(datum) | |
@datum = datum.delete(' ').strip | |
end | |
def domicil(domicil) | |
@domicil = domicil.delete(' ').strip | |
end | |
def hash(hash) | |
@hash = hash.delete(' ').strip | |
end | |
def identifikace(identifikace) | |
@identifikace = identifikace.delete(' ').strip | |
end | |
def issn(issn) | |
@issn = issn.delete(' ').strip | |
end | |
def jazyk(jazyk) | |
@jazyk = jazyk.delete(' ').strip | |
end | |
def nazev(nazev) | |
@nazev = nazev.delete(' ').strip | |
end | |
def oblast(oblast) | |
@oblast = oblast.delete(' ').strip | |
end | |
def odkaz(odkaz) | |
@odkaz = odkaz.delete(' ').strip | |
end | |
def rubrika(rubrika) | |
@rubrika = rubrika.delete(' ').strip | |
end | |
def shortcut(shortcut) | |
@shortcut = shortcut.delete(' ').strip | |
end | |
def shortcutarea(shortcutarea) | |
@shortcutarea = shortcutarea.delete(' ').strip | |
end | |
def shortcutgroup(shortcutgroup) | |
@shortcutgroup = shortcutgroup.delete(' ').strip | |
end | |
def text(text) | |
#@text = text.delete(' ').strip | |
end | |
def zdroj(zdroj) | |
@zdroj = zdroj.delete(' ').strip | |
end | |
def zpracovano(zpracovano) | |
@zpracovano = zpracovano.delete(' ').strip | |
end | |
def exporttojson(index) | |
end | |
# def () | |
# @ = | |
# end | |
end | |
page1 = Nokogiri::HTML(open("2015-10-22_IT.htm")) | |
#odstrani vsechny span značky, ale nechá jejich obsah | |
page1.css("span.highlighted").each do |span| | |
span.replace " #{span.content}" | |
end | |
#kvuli nejake chybe znovunacitam html soubor, ale jako promennou | |
page = Nokogiri::HTML(page1.to_xml) | |
#pole, ve kterem jsou vsechny objekty | |
clanky = Array.new | |
page.css('.documentContentDiv').each {|x| | |
#objekt, ve kterem je cely clanek | |
clanek = Clanek.new | |
#Rozpozna a zpracuje metadata z každého článku | |
#K_datum, K_nazev, K_rubrika, K_puvod, K_autor, K_zdroj | |
x.css('.verticalField').each {|y| | |
vrchniMeta = y.text.split(":",2) | |
case vrchniMeta[0] | |
when "\nSkóre" | |
clanek.k_skore(vrchniMeta[1]) | |
when "\nK_datum" | |
clanek.k_datum(vrchniMeta[1]) | |
when "\nK_nazev" | |
clanek.k_nazev(vrchniMeta[1]) | |
when "\nK_rubrika" | |
clanek.k_rubrika(vrchniMeta[1]) | |
when "\nK_puvod" | |
clanek.k_puvod(vrchniMeta[1]) | |
when "\nK_autor" | |
clanek.k_autor(vrchniMeta[1]) | |
when "\nK_zdroj" | |
clanek.k_zdroj(vrchniMeta[1]) | |
else | |
p "Neznámý typ!! Vyvolávám chybu" | |
p vrchniMeta[0] | |
exit | |
end | |
} | |
#Rozpozna s zpracuje text clanku a take vlozena metadata | |
#text = obsahuje samotny text clanku | |
#Rozpoznana metadata: Zdroj, Datum, Název, Číslo, Rubrika, Jazyk, Domicil, Odkaz, Oblast, Zpracováno, Identifikace, Hash, ShortcutGroup, ShortcutArea, Shortcut, Text | |
x.css('.documentText').each {|c| | |
data = c.text.split("Text:",2) | |
#metadata v čánku | |
c.search("text()").map{ |g| | |
next if g.text == "\n" | |
break if g.text == "Text: " | |
spodniMeta = g.text.split(":",2) | |
case spodniMeta[0] | |
when "Autor" | |
clanek.autor(spodniMeta[1]) | |
when "Číslo" | |
clanek.cislo(spodniMeta[1]) | |
when "Datum" | |
clanek.datum(spodniMeta[1]) | |
when "Domicil" | |
clanek.domicil(spodniMeta[1]) | |
when "Hash" | |
clanek.hash(spodniMeta[1]) | |
when "Identifikace" | |
clanek.identifikace(spodniMeta[1]) | |
when "ISSN" | |
clanek.issn(spodniMeta[1]) | |
when "Jazyk" | |
clanek.jazyk(spodniMeta[1]) | |
when "Název" | |
clanek.nazev(spodniMeta[1]) | |
when "Oblast" | |
clanek.oblast(spodniMeta[1]) | |
when "Odkaz" | |
clanek.odkaz(spodniMeta[1]) | |
when "Rubrika" | |
clanek.rubrika(spodniMeta[1]) | |
when "Shortcut" | |
clanek.shortcut(spodniMeta[1]) | |
when "ShortcutArea" | |
clanek.shortcutarea(spodniMeta[1]) | |
when "ShortcutGroup" | |
clanek.shortcutgroup(spodniMeta[1]) | |
when "Text" | |
clanek.text(spodniMeta[1]) | |
when "Zdroj" | |
clanek.zdroj(spodniMeta[1]) | |
when "Zpracováno" | |
clanek.zpracovano(spodniMeta[1]) | |
else | |
p "Neznámý typ!! Vyvolávám chybu" | |
p spodniMeta[0] | |
exit | |
end | |
} | |
#Samotný text článku | |
text = data[1].gsub!("\n", " ") | |
clanek.text(text) | |
} | |
clanky << clanek | |
} | |
p clanky |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment