ich habe als Python-Neuling ein (kleines?) Problem
Wie ihr sehen könnt übergibt meine Klasse einen returnwert "articles".
Innerhalb der Klasse ist auch alles bestens, in der nächsten Jupyther-Zeile in welcher ich die Liste mittels for in ausgeben möchte moniert der Interpreter
"name 'articles' is not defined", was ich mir nicht ganz erklären kann, denn ich übergebe ja den returnwert um ihn weiterverarbeiten zu können.
Innerhalb der Klasse / Funktion funktioniert die Ausgabe auch bestens, jedoch nicht im letzten Aufruf.
Sollte das doch ein Scopeproblem sein?? Ich werd gerade verrückt weil ich nach mittlerweile 2 Stunden noch immer keine Lösung gefunden habe....Ich wäre für jede Hilfe wirklich dankbar.
Beste Grüße
Andre
Code: Alles auswählen
class CrawledArticle():
def __init__(self, title, emoji, content, image):
self.title = title
self.emoji = emoji
self.content = content
self.image = image
class ArticleFetcher():
def fetch(self):
url = "http://python.beispiel.programmierenlernen.io/index.php"
r = requests.get(url)
doc = BeautifulSoup(r.text, "html.parser")
articles = []
for card in doc.select(".card"):
emoji = card.select_one(".emoji").text
content = card.select_one(".card-text").text
title = card.select(".card-title span")[1].text
image = urljoin(url, card.select_one("img").attrs["src"])
crawled = CrawledArticle(title, emoji, content, image)
articles.append(crawled)
for article in articles:
print(article.image)
return articles
Code: Alles auswählen
fetcher = ArticleFetcher()
fetcher.fetch()
Code: Alles auswählen
for article in articles:
print(article.image)
<ipython-input-27-090828a2c1d0> in <module>
----> 1 for article in articles:
2 print(article.image)
NameError: name 'articles' is not defined