-
Notifications
You must be signed in to change notification settings - Fork 0
/
parser.rb
executable file
·107 lines (94 loc) · 2.53 KB
/
parser.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#!/usr/bin/ruby
require 'rubygems'
require 'nokogiri'
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)
page.css('.documentContentDiv').each {|x|
#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"
puts "Skore: #{vrchniMeta[1]}"
when "\nK_datum"
puts "Datum #{vrchniMeta[1]}"
when "\nK_nazev"
puts "Nazev #{vrchniMeta[1]}"
when "\nK_rubrika"
puts "Rubrika #{vrchniMeta[1]}"
when "\nK_puvod"
puts "Puvod #{vrchniMeta[1]}"
when "\nK_autor"
puts "Autor #{vrchniMeta[1]}"
when "\nK_zdroj"
puts "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"
p "Autor #{spodniMeta[1]}"
when "Číslo"
p "Číslo #{spodniMeta[1]}"
when "Datum"
p "Datum #{spodniMeta[1]}"
when "Domicil"
p "Domocil #{spodniMeta[1]}"
when "Hash"
p "Hash #{spodniMeta[1]}"
when "Identifikace"
p "Identifikace #{spodniMeta[1]}"
when "ISSN"
p "ISSN #{spodniMeta[1]}"
when "Jazyk"
p "Jazyk #{spodniMeta[1]}"
when "Název"
p "Nazev #{spodniMeta[1]}"
when "Oblast"
p "Oblast #{spodniMeta[1]}"
when "Odkaz"
p "Odkaz #{spodniMeta[1]}"
when "Rubrika"
p "Rubrika #{spodniMeta[1]}"
when "Shortcut"
p "Shortcut #{spodniMeta[1]}"
when "ShortcutArea"
p "ShortcutArea #{spodniMeta[1]}"
when "ShortcutGroup"
p "ShortcutGroup #{spodniMeta[1]}"
when "Text"
p "Text #{spodniMeta[1]}"
when "Zdroj"
p "Zdroj #{spodniMeta[1]}"
when "Zpracováno"
p "Zpracováno #{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", " ")
p text
}
}