Bonjour à tous,
Avec urllib, j'arrive à obtenir une page HTML en string.
Je veux en extraire un passage dont je sais qu'il est compris entre
</Title> et <tr><td align="right">toto_end</td>
J'ai fait une fonction qui me ramene la page en string,
et une autre que voici :
et là ça ne passe pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 def cherche_passage(page): print page print type(page) passage = re.search('</title>(.*)<tr><td align="right">toto_end</td>', page) print passage print type(passage) passage = passage.group(1) print passage
ça me print bien la page
le type c'est bien une string
Mais le résultat de re.search est "none" alors que mes bornes y figurent bien.
J'obtiens ceci:
Alors que si je teste avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <html> <head> ... toute le page </html> <type 'str'> None <type 'NoneType'> Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 10, in cherche_synonyme File "<stdin>", line 8, in cherche_passage AttributeError: 'NoneType' object has no attribute 'group' >>>
j'ai bien
Code : Sélectionner tout - Visualiser dans une fenêtre à part print (re.search('</title>(.*)<tr><td align="right">toto_end</td>', '</title>blabla<tr><td align="right">toto_end</td>').group(1)
Code : Sélectionner tout - Visualiser dans une fenêtre à part 'blabla'
Est-ce qu'il y a une solution simple pour palier à ce problème?
Je pense que c'est un problème de retour à la ligne... Mais comment faire?
J'ai essayé d'ajouter :
de chaque côté de la variable page mais ça donne le même résultat...
Code : Sélectionner tout - Visualiser dans une fenêtre à part "\"\"\""
J'ai bien trouvé ce que vous avez mis en ligne :
from HTMLParser import HTMLParser
Mais je n'y comprends rien...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 class MyHTMLParser(HTMLParser): def handle_starttag(self, tag, attrs): print "Encountered the beginning of a %s tag" % tag def handle_endtag(self, tag): print "Encountered the end of a %s tag" % tag
Je ne sais pas utiliser les classes...
Je vous remercie d'avance, si vous pouvez me dépanner.
Partager