Bonjour,
je deviens folle avec cette exercice ça fait au moins 3 semaine que je cherche sans vain, j'ai vraiment besoin de l'aide
la question est :
adapter un script pour qu'il puisse non seulement indexer une page WEB quel que soit son codage, mais aussi pour qu'il construise automatiquement la liste des liens HTTP mentionnés dans la page, et indexe également leur contenu, quelqu'en soit le codage, toujours " ; et bien entendu, prévoir l'architecture du programme pour qu'il soit aisé de le faire évoluer en vue de traiter également les liens référencés par les pages liées il s'agit un module et un script
j'ai tenté ça :
le module est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 #!/usr/bin/env python # -*- coding: utf-8 -*- def pilote(fichier, dex) : flux = open(fichier, 'r') for n, ligne in enumerate(flux) : dex = indexe(dex, ligne.split(), n + 1) flux.close() prd(dex) return dex ponctuation = '(/-+,.")' def nettoie(mot) : new = '' for x in mot : if x not in ponctuation : new += x else : pass return new def get_href(ligne) : x = ligne.find('href=') if x < 0 : return ref = ligne[x+6:].split('"')[0] if ref.startswith('http:') : return ref def indexe(dex, mots, ligne) : hrefs = [] for ligne in dex : hrefs.append(get_href(ligne)) for mot in mots : mot = nettoie(mot) if mot.lower() in go_get_list() : dex = ajoute(dex, mot, ligne) else : pass return dex def ajoute(dex, mot, ligne) : if mot in dex : if ligne in dex[mot] : pass else : dex[mot].append(ligne) else : dex[mot] = [ligne] return dex stoplist = 'ce de du en le in la mais on ou par pas pour qui un une'.split() golist = 'forums accessibles main Server universitaires fermeture organisation versions tools shrubbery '.split() def prd(d) : for c in sorted(d) : print '\t', c, ':', d[c] def put_list(golist) : flux = open('go.list', 'w') flux.write('\n'.join(golist)) flux.close() def go_get_list() : flux = open('go.list', 'r') get = flux.read().split() flux.close() return get def put_list(stoplist) : flux = open('stop.list', 'w') flux.write('\n'.join(stoplist)) flux.close() def get_list() : flux = open('stop.list', 'r') stoplist = flux.read().split() flux.close() return stoplist
mais je reçois ça comme réponse au terminal :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 #!/usr/bin/env python # -*- coding: UTF-8 -*- from dexlex import indexe, prd from sys import argv from urllib import urlopen def pilote(f, X) : url = f if f.startswith('http://') else None flux = urlopen(f) if url else open(f) for n, texte in enumerate(flux) : X = indexe(X, texte.split(), url or n+1) flux.close() return X if len(argv) > 1 : for x in argv[1:]: print prd(pilote(x, {})) else : exit('arg manquant : fichier ou url')
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ./imd.py 'http://www.iedparis8.net/ied' Fermeture : ['universitaires'] organisation : ['universitaires'] universitaires : ['http://www.iedparis8.net/ied']help svp
Partager