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 :

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
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
#!/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')
mais je reçois ça comme réponse au terminal :

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