récupération données tableau html avec python - Python - Programmation
MarshPosté le 27-07-2015 à 12:16:30
Bonjour à tous,
Je débute tout juste sur ce forum et sur python, je suis donc navrée si ce sujet n'est pas au bon endroit ou s'il est mal formulé.
Pour mon travail, je chercher à récupérer des données d'un tableau html pris sur www.societe.com à l'aide du logiciel python. Mais celui-ci me donne du fil à retordre :$. En effet, il ne semble pas à même de compter les colonnes dans chaque ligne pour prélever les données que je souhaite. Mon code est le suivant:
from bs4 import BeautifulSoup import urllib url = 'http://www.societe.com/bilan/air-liquide-sante-international-552134728201312311.html' html_file = urllib.request.urlopen(url) soup = BeautifulSoup(html_file) tables = soup.findAll('table') for money in tables[0].findAll('tr'): tds=money.findAll('td') print (tds[0].string, '=>', tds[1].string)
et le message d'erreur est: IndexError: list index out of range.
Le premier <tr> de ta table contient des <th>, pas de <td>. Donc money.findAll('td') est une liste vide, et donc erreur. Normal.
--------------- I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
Marsh Posté le 27-07-2015 à 12:16:30
Bonjour à tous,
Je débute tout juste sur ce forum et sur python, je suis donc navrée si ce sujet n'est pas au bon endroit ou s'il est mal formulé.
Pour mon travail, je chercher à récupérer des données d'un tableau html pris sur www.societe.com à l'aide du logiciel python. Mais celui-ci me donne du fil à retordre :$. En effet, il ne semble pas à même de compter les colonnes dans chaque ligne pour prélever les données que je souhaite. Mon code est le suivant:
from bs4 import BeautifulSoup
import urllib
url = 'http://www.societe.com/bilan/air-liquide-sante-international-552134728201312311.html'
html_file = urllib.request.urlopen(url)
soup = BeautifulSoup(html_file)
tables = soup.findAll('table')
for money in tables[0].findAll('tr'):
tds=money.findAll('td')
print (tds[0].string, '=>', tds[1].string)
et le message d'erreur est: IndexError: list index out of range.
L'un d'entre vous aurait-il une idée?
Merci d'avance et bonne journée à tous.