hallo,
bin absoluter Anfänger und habe mir einen kleinen Feedreader gebaut. Würde gerne die Feeds in einer txt oder csv speichern. Komme aber nicht weiter. Vielleicht kann mir jemand helfen.
import feedparser
RSS_URLS = [
'https://www.xxx',
'http://www.xxx',
]
feeds = []
for url in RSS_URLS:
feeds.append(feedparser.parse(url))
for feed in feeds:
for post in feed.entries:
print (post.title)
print (post.link)
print (post.published)
Danke
Frage: "feedparser" in txt oder csv Speichern
- __blackjack__
- User
- Beiträge: 14050
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Wax007: Auf Modulebene sollte nur Code stehen der Konstanten, Funktionen, und Klassen definiert. Das Hauptprogramm steht üblicherweise in einer Funktion die `main()` heisst.
Die erste Schleife lässt sich prima als „list comprehension“ ausdrücken: ``feeds = [feedparser.parse(url) for url in RSS_URLS]``. Beziehungsweise wenn es nicht wichtig ist *wann* die Feeds geparst werden, kann man `feeds` auch weg lassen und mit `map()` arbeiten.
Zum lesen und schreiben von CSV-Dateien gibt es in der Standardbibliothek das `csv`-Modul.
Die erste Schleife lässt sich prima als „list comprehension“ ausdrücken: ``feeds = [feedparser.parse(url) for url in RSS_URLS]``. Beziehungsweise wenn es nicht wichtig ist *wann* die Feeds geparst werden, kann man `feeds` auch weg lassen und mit `map()` arbeiten.
Code: Alles auswählen
#!/usr/bin/env python3
import feedparser
RSS_URLS = ["https://www.heise.de/rss/heise-atom.xml"]
def main():
for feed in map(feedparser.parse, RSS_URLS):
for post in feed.entries:
print(post.title)
print(post.link)
print(post.published)
if __name__ == "__main__":
main()
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Hi __blackjack__,
vielen Danke für das Feedback (klappt perfekt).
Leider bin ich wirklich noch ein Anfänger - wie müsste ich den Code schreiben, wenn ich die Infos in eine CSV oder txt speichern wollte. Das CSV Modul habe ich schon implementiert .
Danke für die Hilfe
vielen Danke für das Feedback (klappt perfekt).
Leider bin ich wirklich noch ein Anfänger - wie müsste ich den Code schreiben, wenn ich die Infos in eine CSV oder txt speichern wollte. Das CSV Modul habe ich schon implementiert .
Danke für die Hilfe
- __blackjack__
- User
- Beiträge: 14050
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Wax007: Ich bin ziemlich sicher das Du das nicht implementiert hast, das waren andere. Wenn Du es implementiert hättest, würdest Du wohl eher keine Frage bezüglich der Verwendung stellen. 
Womit hast Du denn konkret ein Problem mit der Dokumentation von dem Modul? Was hast Du geschrieben und was macht das jetzt nicht so wie Du das erwartest? Und bei einer Fehlermeldung dann bitte auch die Fehlermeldung/den kompletten Traceback 1:1 zeigen.
Womit hast Du denn konkret ein Problem mit der Dokumentation von dem Modul? Was hast Du geschrieben und was macht das jetzt nicht so wie Du das erwartest? Und bei einer Fehlermeldung dann bitte auch die Fehlermeldung/den kompletten Traceback 1:1 zeigen.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Hi,
ich würde gerne die RSS Feeds (vielen Dank für die Überarbeitung) in einer CSV Datei speichern. Leider bin ich noch Anfänger hier eine richtige Lösung zu finden.
import feedparser
import csv
RSS_URLS = ["https://www.heise.de/rss/heise-atom.xml"]
def main():
for feed in map(feedparser.parse, RSS_URLS):
for post in feed.entries:
print(post.title)
print(post.link)
print(post.published)
if __name__ == "__main__":
main()
with open('example.csv', 'w') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
print(row['title'], row['link'],row['published'] )
Danke für die Hilfe
ich würde gerne die RSS Feeds (vielen Dank für die Überarbeitung) in einer CSV Datei speichern. Leider bin ich noch Anfänger hier eine richtige Lösung zu finden.
import feedparser
import csv
RSS_URLS = ["https://www.heise.de/rss/heise-atom.xml"]
def main():
for feed in map(feedparser.parse, RSS_URLS):
for post in feed.entries:
print(post.title)
print(post.link)
print(post.published)
if __name__ == "__main__":
main()
with open('example.csv', 'w') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
print(row['title'], row['link'],row['published'] )
Danke für die Hilfe