Je voudrais que les commandes suivantes saisissent la date de l'adresse dans cette plage, mais je n'arrive pas à la faire fonctionner plus d'une fois. J'utilise Python 3. Comme vous pouvez le voir ci-dessous, l'url du site est ajoutée avec i pour être lu http://zinc.docking.org/substance/10; http://zinc.docking.org/substance/11 ... et ainsi de suite. Voici le code:Python Embedded Pour les boucles de plage
import bs4 as bs
import urllib.request
site = "http://zinc.docking.org/substance/"
for i in range(10, 16):
site1 = str("%s%i" % (site, i))
sauce = urllib.request.urlopen(site1).read()
soup = bs.BeautifulSoup(sauce, 'lxml')
table1 = soup.find("table", attrs={"class": "substance-properties"})
for row in table1.findAll('tr'):
row1 = row.findAll('td')
ate = row1[0].getText()
print(ate)
Ceci est ma sortie:
$python3 Date.py
November 11th, 2005
Le script doit cependant me donner 3 dates. Ce code fonctionne donc je sais que la ligne [0] contient en fait une valeur. J'ai l'impression qu'il y a une sorte d'erreur de formatage simple mais je ne sais pas par où commencer le dépannage. Quand je formater ce « correctement » c'est le code:
import bs4 as bs
import urllib.request
import pandas as pd
import csv
site = "http://zinc.docking.org/substance/"
for i in range(10, 16):
site1 = str("%s%i" % (site, i))
sauce = urllib.request.urlopen(site1).read()
soup = bs.BeautifulSoup(sauce, 'lxml')
table1 = soup.find("table", attrs={"class": "substance-properties"})
table2 = soup.find("table", attrs={"class": "protomers"})
for row in table1.findAll('tr'):
row1 = row.findAll('td')
ate = row1[0].getText()
print(ate)
L'erreur que je reçois est la suivante:
Traceback (most recent call last):
File "Stack.py", line 11, in <module>
ate = row1[1].getText()
IndexError: list index out of range
Le premier code fonctionne si je sais que la ligne [0] ne contiennent en fait une valeur. Des idées?
Patrick, je vous remercie d'avoir répondu mais quand je corrige le code et je suis arrivé comme une erreur retraçage (le plus récent appel dernier): Fichier « Reset.py », ligne 14, à date = row1 [0 ] .getText() IndexError: index de liste hors plage –
jcruzer
Vérifiez le 'len' de' row1' ou 'print' il - il peut être vide. – patrick
S'il vous plaît poster le code ci-dessus, je ne peux pas le lire de cette façon – patrick