Ich versuche, Text von einer Reihe von Hyperlinks auf einer Hauptseite zu kratzen und dann speichern Sie die Ergebnisse als eine Liste von String-Objekten. Der Code, den ich geschrieben habe, funktioniert, wenn ich ihn auf einem einzelnen Link ausführe, aber er bricht zusammen, wenn ich versuche, alle Links zu durchlaufen.Python Web Scraping, in Schleife zu brechen
FYI, sieht meine Basis-URL wie folgt aus:
base_url = "http://www.achpr.org"
Und meine Hyperlinks wie folgt aussehen:
hyperlinks = ['/sessions/58th',
'/sessions/58th/resolutions/337/',
'/sessions/58th/resolutions/338/',
'/sessions/58th/resolutions/339/', ...]
So funktioniert das gut:
r = requests.get('http://www.achpr.org' + "/sessions/19th-eo/resolutions/328/")
soup = BeautifulSoup(r.text, "lxml")
soup.find('b').span.string
text = soup.findAll('span')
y = []
for i in text:
x = i.strings #returns string within tags
y.extend(x)
y = "".join(y)
y = y.replace("\n", " ")
y = y.replace("\xa0*", " ")
print(ok)
Aber wenn ich versuche, Um dies in eine Schleife zu verwandeln:
output = []
for item in hyperlinks:
r = requests.get('http://www.achpr.org' + link)
soup = BeautifulSoup(r.text, "lxml")
soup.find('b').span.string
text = soup.findAll('span')
y = []
for i in text:
x = i.strings #returns string within tags (so no tags)
y.extend(x)
y = "".join(y)
y = y.replace("\n", " ")
y = y.replace("\xa0*", " ")
output.extend(y)
bekomme ich folgende Fehlermeldung:
Es fühlt sich an wie ich bin ein wirklich einfachen Looping Fehler (Putting Einzüge an der falschen Stelle) zu machen, aber ich habe an diesem zu lange angestarrt und ich hätte gerne ein neues Paar Augen. Kann jemand sehen, was ich falsch mache?
Ahhhh danke! So einfach. – chickpeaze