Ich habe einen schnellen Feed-Reader mit Feedparser in Python erstellt

Einführung

Ich habe versucht, RSS mithilfe der Feedparser-Bibliothek in Python3 abzurufen. Python ist ein absoluter Anfänger.

Umgebung

feedparser

Ich habe einen praktischen namens "Feed Parser" verwendet. Dies ist eine großartige Sache, da es nur durch Übergeben der URL analysiert und in ein schönes Wörterbuch eingefügt wird.

Ich habe die neueste Version des Dokuments nicht gesehen, weil ich es nicht sehen kann, ohne es zu erstellen, aber alte Informationen besagen, dass es das Haupt-RSS / Atom unterstützt.


Installieren Sie mit pip.

pip3 install feedparser

Einfach zu verwenden.

import feedparser

url = 'https://gigazine.net/index.php?/news/rss_2.0/'

for entry in feedparser.parse(url).entries:
    print(entry.title)
Ausgabe
Welcher Stern ist der "größte Stern im Universum"?
Schwerere Decken am Körper können Schlaflosigkeit verbessern
Ich habe versucht, Lotterias beliebtes Menü zusammen mit W Patty, 4 Sorten Käsesauce und "Lotteria Autumn 3 Big Fairs" zu essen, das mit halbreifer Mondbeobachtung wunderbar angepasst wurde.
Der frühere CEO eines globalen Spieleherstellers gründet eine neue Spielefirma und die Entwicklung neuer Spiele ist im Gange
Warum hat QAnon, eine Gruppe, die Verschwörungstheorie verbreitet, Reddit verlassen, ein riesiges Schwarzes Brett?
Was denken Facebook-CEOs angesichts einer Reihe von Problemen wie Streiks von Mitarbeitern, Boykotten von Werbetreibenden und kartellrechtlichen Ermittlungen? Durchgesickerte Sprachanzeige
Schlagzeilen am 24. September 2020
"Fake Profile Creation Manual" auf Facebook und Linked In durchgesickert von SNS Monitoring Company
Intel kündigt den Core-Prozessor "Tiger Lake UP3" der 11. Generation mit 10-nm-Prozess für IoT Edge an
Veröffentlichung einer Lösungsimplementierung "AWS Perspective", mit der AWS automatisch ein Architekturdiagramm erstellen kann
AMD kündigt Ryzen 3000C-Prozessorserien für Chromebooks an, die gemeinsam mit Google entwickelt wurden
Ein Film, der das Phänomen einfängt, dass ein Meteorit wie ein "Abfluss" in der Erdatmosphäre abprallt.
Tesla verklagt die US-Regierung wegen Aufhebung der Zölle auf aus China importierte Teile
Es sind Pläne für klinische Studien mit "künstlichen Augen" im Gange, um das verlorene Sehvermögen wiederherzustellen
Sie können den Epidemiestatus des neuen Koronavirus in Google Maps überprüfen
Ich habe Lawson "L Chiki Honey Maple Flavor" probiert, bei dem die Süße von glänzendem Honig und Ahornsirup unter den Gewürzen von L Chiki hervorsticht
Adobe kündigt "Liquid Mode" an, eine Funktion, mit der PDFs auf Smartphones einfach gelesen und automatisch angepasst werden können.
Kalifornien beschließt, den Neuverkauf von Benzinfahrzeugen zu verbieten
Wikipedia gestaltet zum ersten Mal seit 10 Jahren neu
Die Veröffentlichung des neuesten MCU-Films "Black Widow" wurde verschoben, und 2020 wird "das erste Jahr ohne MCU-Film seit 2009" sein.
Google hat die Verteilung kostenpflichtiger Erweiterungen im Chrome Web Store eingestellt
Twitter testet die Funktion "Sprachnachricht"
Eine Art Fuchs führt über mehrere Tage einen "großen Krieg", und einige Personen beobachten den Verlauf des Krieges.
Was ist die Ursache für das mysteriöse Phänomen, dass "das Internet anderthalb Jahre lang plötzlich um 7 Uhr morgens verschwindet"?
Zusammenfassung dessen, was aus dem "Finsen-Dokument" hervorgeht, das die Geldwäscheunterstützung großer Banken und Probleme enthüllte
Googles Android Division Executive spricht über "Android 11"
Ich kaufte bei Matsuya ein "Shrimp Chili Sauce Set Mahlzeit" und probierte es aus, wo weißer Reis mit Chili Sauce mit viel Shrimps verrückt wird.
179 illegale Händler von Dark Web wurden verhaftet und Beamte haben eine Erklärung abgegeben, dass "das goldene Zeitalter von Dark Web vorbei ist".
Ein wilder Mann, der Minecraft in einen Famicom-Emulator verwandelt hat, erscheint
Wie kann ein völlig unbekannter Künstler durch den Missbrauch von Spotify Ansichten gewinnen?

Es ist wunderbar.

Vollständiges Formular

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

#URL-Definition
urls = [
    'https://gigazine.net/index.php?/news/rss_2.0/',
    'https://japanese.engadget.com/rss.xml',
    'https://jp.techcrunch.com/feed/',
    'https://www.gizmodo.jp/index.xml',
]

from feedparser import parse
from datetime import datetime as dt
from webbrowser import open as browserOpen
from urllib.parse import urlencode

#Datumsanalysefunktion
def parseDate(dateData):
    return dt(
        dateData.tm_year,
        dateData.tm_mon,
        dateData.tm_mday,
        dateData.tm_hour,
        dateData.tm_min,
        dateData.tm_sec
    )

#Schnelles Abrufen und Formatieren mit Listeneinschlussnotation
entries = [
    {
        'title': entry['title'],
        'link': entry['link'],
        'date': parseDate(entry['updated_parsed'] or entry['published_parsed'])
    }
    for url in urls
    for entry in parse(url).entries
]

#Nach Datum sortieren
entries.sort(key=lambda x: x['date'], reverse=True)

savedEntries = []

for entry in entries:
    #Titel anzeigen,
    print(entry['title'])

    #Bitten Sie den Benutzer um Eingabe
    userAction = input()

    if userAction == 'q':
        #Wenn es beendet wird, endet es
        break
    elif userAction == 's':
        #Wenn gespeichert, im Array speichern
        savedEntries.append(entry)
        print('saved!')

for savedEntry in savedEntries:
    browserOpen(savedEntry['link'])

abschließend

Die Verarbeitung benötigt Zeit, da die Daten selbst erfasst werden. Es scheint gut, den Fortschritt mit tqdm anzuzeigen. Ich habe diesmal nicht so viele URLs registriert, nutzen Sie also eine andere Gelegenheit.

Wenn Sie die Pocket-API usw. verwenden, können Sie automatisch in Pocket speichern.

Trotzdem ist Python schwierig, nicht wahr? Es war einfach, aber für mich, der ich an TypeScript gewöhnt bin, ist es ziemlich nervig ...

Recommended Posts

Ich habe einen schnellen Feed-Reader mit Feedparser in Python erstellt
Ich habe einen Line-Bot mit Python gemacht!
Ich habe ein Pay-Management-Programm in Python erstellt!
Ich habe ein Caesar-Kryptografieprogramm in Python erstellt.
Ich habe einen Python-Text gemacht
Ich habe einen Anmelde- / Abmeldevorgang mit Python's Bottle durchgeführt.
Ich habe ein einfaches Tippspiel mit tkinter of Python gemacht
Ich habe mit Python eine Lotterie gemacht.
Ich habe mit Tkinter of Python ein Puzzlespiel (wie) gemacht
Ich habe eine Stoppuhr mit tkinter mit Python gemacht
Ich habe mit Python einen Daemon erstellt
Ich habe Chatbot mit LINE Messaging API und Python erstellt
Bei Verwendung von @property in Python wird ein Attribut nicht festgelegt
Ich habe einen Pokerspielserver Chat-Holdem mit Websocket mit Python erstellt
Ich habe Chatbot mit der LINE Messaging API und Python (2) ~ Server ~ erstellt
Ich habe mit Python einen Zeichenzähler erstellt
Ich habe versucht, die Bayes'sche Optimierung von Python zu verwenden
Anfänger: Ich habe einen Launcher mit dem Wörterbuch erstellt
Scraping von Websites mit JavaScript in Python
Zeichnen Sie mit graphviz eine Baumstruktur in Python 3
Ich habe mit Python eine Hex-Map erstellt
Nachdem ich Python3 studiert hatte, machte ich einen Slackbot
Ich habe ein Passwort-Tool in Python erstellt.
Ich habe mit Python ein schurkenhaftes Spiel gemacht
Ich habe mit Python einen einfachen Blackjack gemacht
Ich habe mit Python eine Einstellungsdatei erstellt
Ich habe mit Python einen Neuronensimulator erstellt
Ich habe eine Webanwendung in Python erstellt, die Markdown in HTML konvertiert
Ich habe in Python einen Discord-Bot erstellt, der übersetzt, wenn er reagiert
Ich habe ein Skript in Python erstellt, um MDD-Dateien in das Scrapbox-Format zu konvertieren
[IOS] Ich habe ein Widget erstellt, das den Trend von Qiita in Pythonista3 anzeigt. [Python]
Ich habe ein Programm erstellt, um die Größe einer Datei mit Python zu überprüfen
Ich habe FizzBuzz in Python mit der Support Vector Machine (Bibliothek LIVSVM) geschrieben.
Ich habe eine Python-Wörterbuchdatei für Neocomplete erstellt
Erstellen Sie eine GIF-Datei mit Pillow in Python
Ich habe mit Python eine Bot-Wettervorhersage gemacht.
Ein Memo, das ich schnell in Python geschrieben habe
Ich habe eine GUI-App mit Python + PyQt5 erstellt
Ich möchte mit Python ein Fenster erstellen
Ich habe versucht, mit Python einen Twitter-Blocker für faule Mädchen zu machen
Ich habe eine Klasse in Python3 und Java geschrieben
[Python] Ich habe mit Tkinter einen Youtube Downloader erstellt.
Anzeigen von Arzneimittelbewertungen mithilfe von Listen in Python
Ich habe versucht, eine CSV-Datei mit Python zu lesen
Ich habe versucht, ein Python 3-Modul in C hinzuzufügen
Erstellen Sie eine MIDI-Datei in Python mit pretty_midi
Ich habe einen japanischen Parser auf Japanisch mit Pyparsing geschrieben.
Ich habe einen einfachen RSS-Reader ~ C Edition ~ gemacht
Ich habe mit Python ein Bin-Picking-Spiel gemacht
Mattermost Bot mit Python gemacht (+ Flask)
Python Qiita API Wrapper "qiipy" gemacht
Ich habe ein Modul in C-Sprache erstellt, das von Python geladene Bilder filtert
In Python habe ich einen LINE-Bot erstellt, der Polleninformationen aus Standortinformationen sendet.
Ich habe ein Skript erstellt, das das aktive Fenster mit win32gui von Python aufzeichnet
Erstellen Sie mit Selenium einen Datenerfassungsbot in Python
Ich möchte eine Variable in einen Python-String einbetten