Extraction données HTMLParser
Bonjour à tous,
Mon objectif est d'extraire un type particulier de donnée d'un page web. J'ai essayé de le faire avec HTMLParser.
Mais je n'arrive pas à écrire le script de façon à n'extraire qu'un type de donnée, ici "Hello World".
Cela fonctionne de mettre un tag de début, mais je ne sais pas utiliser un tag de fin, ici "span" pour que la collecte de donnée s'arrête après "Hello World" et ne reprenne que pour le nouveau "Hello World".
En bonus, j'aimerai pouvoir mettre ces données dans une liste.
Merci d'avance si vous avez une idée de la façon dont il faudrait procéder!
Code:
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
|
from HTMLParser import HTMLParser
class MyHTMLParser(HTMLParser):
def __init__(self):
HTMLParser.__init__(self)
self.inLink = False
self.starttag = None
self.endtag = None
def handle_starttag(self, tag, attrs):
for name, value in attrs:
if name == 'class' and value == 'companyName':
print("Encountered a start tag:", tag)
self.inLink = True
self.starttag = tag
def handle_endtag(self, tag):
print("Encountered an end tag :", tag)
self.endtag = tag
def handle_data(self, data):
if self.inLink and self.starttag == 'a':
print("Encountered some data :", data)
parser = MyHTMLParser()
parser.feed(""" <ol class="">
<li id="lrVisitCard-1" class="visitCard ">
<span class="number">1</span><!-- -->
<div class="visitCardContent">
<h2 class="titleMain">
<a href="http://www.xxxx.fr#onglet-infos" class="companyName"
data-pjstats="{"idRequete":1}"><span>Hello world</span>
<span class="buttonDetails">+ détails</span>
</a></h2>
<div class="category">
<ul><li class="first">autres données</li> </ul></div>
<div class="dataCard sc">
<div class="localisationBlock">
<a href="http://www.xxxx.fr#onglet-infos" class="companyName"
data-pjstats="{"idRequete":1}"><span>Hello world</span>
<p>autre données<br />autre données</p>""") |