J'ai une situation que je ne suis pas sûr de savoir comment résoudre. Parfois, lorsque j'exécute le programme, il fonctionne parfaitement et parfois, il dit
hashtag_list = ['urban', 'hipster', 'retro']
for hashtag in hashtag_list:
tag = randint(1,3)
driver.get('https://www.instagram.com/explore/tags/' + hashtag_list[tag] + '/')
sleep(5)
3 Réponses :
La liste Python est mise à zéroxée. Cela signifie que le premier index d'une liste commence à partir de Il devrait commencer à devenir claire quel est le problème. Depuis l'indice maximal de La solution simple serait d'utiliser 0 code>. Donc, les index de HASTAG_LIST code> sont 0, 1, 2 code>. Cependant, randint (1,3) code> est inclusif, donc tag code> sera parfois attribué au hasard (code> 3 code>. hashtag_list code> est 2 code> et tag code> est parfois 3 code>, alors parfois vous indexerez < Code> hashtag_list code> hors de portée. p> randint (0, 2) code> plutôt que randint (1, 3) code>. Cependant, une solution plus propre serait d'utiliser aléatoire.choice < / code> Pour choisir une option aléatoire à partir de hashtag_list code>: p>
Randint (A, B) CODE> produit un entier aléatoire dans la plage [A, B] code> inclusif, parfois quand il ne fonctionne pas, il ne fonctionne pas, il produise 3 code> et 3 code> est au-delà de la liste. Changez-le à Randint (0, 2) Code>, car dans Python (et dans de nombreuses autres langues), une liste avec les indices N code> des éléments Démarrer depuis 0 code > et mettre fin au n - 1 code>. Ainsi:
changer Tag = Randint (1,3) à Tag = Randint (0,2) P>
Liste Indices Début de 0 en Python
Les index commencent par 0, essayez avec
randint (0,2) code>