source: cpc/trunk/project/batch/documents/parse_metas.pl @ 1351

Last change on this file since 1351 was 1351, checked in by roux, 11 years ago

ajout parsing tags pour pjl/rapports

File size: 4.5 KB
Line 
1#!/usr/bin/perl
2
3$dir = $file = $source = shift;
4$dir =~ s/^([^\/]+)\/.*$/\1/;
5$source =~ s/^[^\/]+\///;
6$source =~ s/http(.?)-/http\1:/;
7$source =~ s/_/\//g;
8$id = $source;
9$id =~ s/^http\:\/\/.*(\d{4})(-[at].*)?\.asp$/\1\2/i;
10$num = $annexe = $id;
11$num =~ s/^0*(\d+)(-[at].*)?$/\1/i;
12$annexe =~ s/^0*\d+(-[at])?(.*)?$/\2/i;
13
14open(FILE, $file) ;
15@string = <FILE>;
16close FILE;
17
18$string = "@string";
19$string =~ s/<br>\s*\n//gi;
20$string =~ s/&#339;|œ+/oe/g;
21$string =~ s/&#8217;/'/g;
22$string =~ s/&#8211;/-/g;
23$string =~ s/&#8230;/\.\.\./g;
24$string =~ s/<\/?u>//gi;
25$string =~ s/<\/?sup>//gi;
26$string =~ s/<\/?span( style=[^>]+)?>//gi;
27$string =~ s/<!\-\-\w*\-\->//ig;
28$string =~ s/\r//g;
29$string =~ s/&nbsp;/ /gi;
30$string =~ s/ +/ /g;
31$string =~ s/ +,/,/g;
32$string =~ s/, +/,/g;
33$string =~ s/,/, /g;
34$string =~ s/ +/ /g;
35$string =~ s/\s+/ /g;
36$string =~ s/&quot;//g;
37if ($dir == "rap") {
38  $string =~ s/L\W\W([AÀEÈÉÊIOUYH])/L'\1/g;
39  $string =~ s/D\W\W([AÀEÈÉÊIOUYH])/D'\1/g;
40}
41$keywords = "";
42#print $string."\n";
43if ($string =~ /<meta name="LEGISLATURE_SESSION"([^>]+)>/) {
44  $line = $1;
45  $line =~ s/^.*content="(\d+)(ème)?[^"]*".*$/\1/;
46  $legislature = $line;
47}
48if ($string =~ /<meta name="AUTEUR"([^>]+)>/) {
49  $line = $1;
50  $line =~ s/^.*content="([^"]+)".*$/\1/;
51  $line =~ s/Premier Ministre Premier ministre/Premier Ministre/;
52  $auteurs = $line;
53}
54if ($string =~ /<meta name="DATE_DEPOT"([^>]+)>/) {
55  $line = $1;
56  $line =~ s/^.*content="([^"]+)".*$/\1/;
57  if ($line =~ /(\d{1,2})\/(\d{2})\/(\d{4})/) {
58$date0 = $3.'-'.$2.'-'.sprintf('%02d', $1);
59  }
60}
61if ($string =~ /<meta name="DATE_PUBLICATION"([^>]+)>/) {
62  $line = $1;
63  $line =~ s/^.*content="([^"]+)".*$/\1/;
64  if ($line =~ /(\d{1,2})\/(\d{2})\/(\d{4})/) {
65$date1 = $3.'-'.$2.'-'.sprintf('%02d', $1);
66  }
67}
68if ($string =~ /<meta name="(DIVISION_DATE_DISTRIBUTION|DATE_LIGNE)"([^>]+)>/ && !$date1) {
69  $line = $1;
70  $line =~ s/^.*content="([^"]+)".*$/\1/;
71  if ($line =~ /(\d{1,2})\/(\d{2})\/(\d{4})/) {
72$date1 = $3.'-'.$2.'-'.sprintf('%02d', $1);
73  }
74}
75if ($string =~ /<meta name="URL_DOSSIER"([^>]+)>/) {
76  $line = $1;
77  $line =~ s/^.*content="[^"]+\/([^"]+)\.asp(#[^"]+)?".*$/\1/;
78  $dossier = $line;
79}
80if ($string =~ /<meta name="TYPE_DOCUMENT"([^>]+)>/) {
81  $line = $1;
82  $line =~ s/^.*content="([^"]+)".*$/\1/;
83  $type0 = $line;
84}
85if ($string =~ /<meta name="INTITULE_CLASSE_ESPECE"([^>]+)>/ && !$type0) {
86  $line = $1;
87  $line =~ s/^.*content="([^"]+)".*$/\1/;
88  $type0 = $line;
89}
90if ($string =~ /<meta name="LIBELLE_ESPECE"([^>]+)>/) {
91  $line = $1;
92  $line =~ s/^.*content="([^"]+)".*$/\1/;
93  if (!($line =~ /^tel quel$/)) {
94$type1 = $line;
95  }
96}
97if ($string =~ /<meta name="TITRE"([^>]+)>/) {
98  $line = $1;
99  $line =~ s/^.*content="([^"]+)".*$/\1/;
100  $line =~ s/\s*\(([n°\s]+)?\d+( rect)?(ifié)?\)\s*$//;
101  $titre = $line;
102}
103if ($string =~ /<meta name="RUBRIQUE"([^>]+)>/) {
104  $line = $1;
105  $line =~ s/^.*content="([^"]+)".*$/\1/;
106  $categorie = $line;
107}
108if ($string =~ /<meta name="DIVISION_INTITULE"([^>]+)>/ && !$categorie) {
109  $line = $1;
110  $line =~ s/^.*content="([^"]+)".*$/\1/;
111  $categorie = $line;
112}
113if ($string =~ /<meta name="SOUS_RUBRIQUE"([^>]+)>/) {
114  $line = $1;
115  $line =~ s/^.*content="([^"]+)".*$/\1/;
116  $keywords .= $line.".";
117}
118if ($string =~ /<meta name="MOTS_CLES"([^>]+)>/) {
119  $line = $1;
120  $line =~ s/^.*content="([^"]+)".*$/\1/;
121  $keywords .= $line.".";
122}
123
124$keywords = lc $keywords;
125$keywords =~ s/^\s+//;
126$keywords =~ s/\s+$//;
127$keywords =~ s/À/à/g;
128$keywords =~ s/É/é/g;
129$keywords =~ s/È/è/g;
130$keywords =~ s/Ê/ê/g;
131$keywords =~ s/Î/î/g;
132$keywords =~ s/Ï/ï/g;
133$keywords =~ s/Ô/ô/g;
134$keywords =~ s/Ù/ù/g;
135$keywords =~ s/Ç/ç/g;
136$keywords =~ s/ +\././g;
137$keywords =~ s/\. +/./g;
138$keywords =~ s/\.+/./g;
139$keywords =~ s/^\.+//g;
140$keywords =~ s/\.+$//g;
141$keywords =~ s/([\s\(,\.])l\./\1L/gi;
142
143if ($categorie =~ /Texte de la commission/i && $id =~ /-a0/) {
144  $categorie = "";
145  $type0 = "Texte de la commission";
146}
147$categorie = lc $categorie;
148$categorie =~ s/^\s+//;
149$categorie =~ s/\s+$//;
150$categorie =~ s/À/à/g;
151$categorie =~ s/É/é/g;
152$categorie =~ s/È/è/g;
153$categorie =~ s/Ê/ê/g;
154$categorie =~ s/Î/î/g;
155$categorie =~ s/Ï/ï/g;
156$categorie =~ s/Ô/ô/g;
157$categorie =~ s/Ù/ù/g;
158$categorie =~ s/Ç/ç/g;
159
160
161#print "\n";
162print '{"source": "'.$source.'", "legislature": "'.$legislature.'", "id": "'.$id.'", "numero": "'.$num.'", "annexe": "'.$annexe.'", "date_depot": "'.$date0.'", "date_publi": "'.$date1.'", "auteurs": "'.$auteurs.'", "dossier": "'.$dossier.'", "type": "'.$type0.'", "type_details": "'.$type1.'", "titre": "'.$titre.'", "categorie": "'.$categorie.'", "motscles": "'.$keywords.'"}'."\n";
163
164
Note: See TracBrowser for help on using the repository browser.