Salut à tou,
Je me mets à python et urllib pour essayer de faire un petit parser de pages web. C'est une bonne introduction pour se mettre à python.
Mon but est de récupérer une liste de liens dans une page donnée.
J'utilise donc htmlparser pour ouvrir une page, et voilà que je passe danscomme prévu, sauf que il ne fait pas toute la page, comme si le feed ne suivait pas une page trop grosse.
Code : Sélectionner tout - Visualiser dans une fenêtre à part handle_starttag()
Je vous refile le code, qui ouvre une page d'un site oueb, parce que si vous avez une explication (il doit bien y en avoir une), je suis preneur :
et là, misère... ma dernière balise affichée est "li", que l'on retrouve en plein milieu du code source de la page.
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 from HTMLParser import HTMLParser from urllib2 import urlopen from urllib import urlencode class BasicPage(HTMLParser): def __init__(self): HTMLParser.__init__(self) self.url = 'http://www.zeturf.fr/fr/resultats' self.req = urlopen(self.url) self.ligne = self.req.read() self.ligne = self.ligne.decode("latin1") self.feed(self.ligne) def handle_starttag(self, tag, attrs): if tag == 'a' and attrs: print tag + ' ' + attrs[0][0] + " = " + attrs[0][1] else: print tag toto=BasicPage()
J'ai pris soin de faire un read() en mode console de la page, histoire d'être sur que je récupère bien toute la page (au cas où...) et tout est ok.
Qui a une idée de la raison pour laquelle le feed s'arrête en plein milieu de page?
Merci d'avance pour vos idées!
Nicolo
Partager