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

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

ajouts fonctios sur documents + correction parsing id documents

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