2017-06-14 8 views
0

Mein Code gibt einen IndexError. Ich kann nicht herausfinden warum. Bitte helfen Sie.Python/BeautifulSoup - Code zeigt IndexError

Dies ist mein Code:

import urllib 
from bs4 import BeautifulSoup 
url = 'http://python-data.dr-chuck.net/known_by_Dregan.html' 

for i in range(7): 
    html = urllib.urlopen(url).read() 
    soup = BeautifulSoup(html) 

    tags = soup('a') 
    lst = list() 

    for tag in tags: 
     a = tag.get('href',None) 
     lst.append(a) 
    url = lst[17] 

print url 

ich folgende Indexerror erhalten:

Traceback (most recent call last): 
    File "test.py", line 15, in <module> 
    url = lst[17] 
IndexError: list index out of range 

Was mache ich falsch? Danke im Voraus.

+0

Wie viele Artikel sind in 'lst'? –

+0

mehr als 18, plus der gleiche Fehler würde auch zeigen, wenn ich es zu 1st ändern [2] – Tokaalmighty

+0

Wie viele genau? Drucke, wieviele es gibt. –

Antwort

0

Sie tun nichts falsches, der Code funktioniert OK für mich. Möglicherweise handelt es sich um ein Netzwerkproblem, bei dem der Inhalt der Seite nicht wie erwartet geladen wurde. Tritt das Problem jedes Mal auf, wenn Sie den Code ausführen?

+0

Das ist super komisch! Ich habe den Code, den ich hier gepostet habe, kopiert und eingefügt und es läuft gut. Aber wenn ich den Code, den ich in meinem Texteditor geschrieben habe, vor der Übertragung hier ausgeführt habe, zeigt er mir den Fehler. – Tokaalmighty

+1

Ich habe gerade versucht, Zeile 15 ('url = lst [17]') einzurücken und es wirft den Fehler, den Sie erwähnten Vor. Vielleicht ist das das Problem, mit dem Sie in Ihrem Code konfrontiert werden. – jgmh