J'ai créé un lecteur de flux rapide en utilisant feedparser en Python

introduction

J'ai essayé d'obtenir RSS en utilisant la bibliothèque feedparser en Python3. Python est un débutant complet.

environnement

feedparser

J'en ai utilisé un pratique appelé «analyseur de flux». C'est une bonne chose car il analyse simplement en passant l'URL et le met dans un joli dictionnaire.

Je n'ai pas vu la dernière version du document car je ne peux pas le voir sans le construire, mais les anciennes informations indiquent qu'il prend en charge le RSS / Atom principal.


Installez avec pip.

pip3 install feedparser

Facile à utiliser.

import feedparser

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

for entry in feedparser.parse(url).entries:
    print(entry.title)
Output
Quelle étoile est la "plus grande étoile de l'univers"?
Des couvertures plus lourdes sur le corps peuvent améliorer l'insomnie
J'ai essayé de manger le menu populaire de Lotteria avec W Patty, 4 sortes de sauce au fromage et "Lotteria Autumn 3 Big Fairs" qui a été magnifiquement personnalisé avec une vision de lune à demi mûre.
L'ancien PDG d'un fabricant mondial de jeux crée une nouvelle société de jeux et le développement de nouveaux jeux est en cours
Pourquoi QAnon, un groupe qui répand la théorie du complot, a-t-il quitté Reddit, un énorme babillard électronique?
Que pensent les PDG de Facebook lorsqu'ils sont confrontés à un certain nombre de problèmes tels que les grèves d'employés, les boycotts des annonceurs et les enquêtes antitrust? Fuite de voix indiquant
Headline News le 24 septembre 2020
Un «manuel de création de faux profil» sur Facebook et Linked In a été divulgué par la société de surveillance SNS
Intel annonce le processeur Core de 11e génération "Tiger Lake UP3" de 10 nm pour l'IoT Edge
Publication d'une implémentation de solution «AWS Perspective» qui permet à AWS de créer automatiquement un diagramme d'architecture
AMD annonce la série de processeurs Ryzen 3000C pour Chromebook conçus conjointement avec Google
Un film qui capture le phénomène selon lequel une météorite rebondit dans l'atmosphère terrestre comme un «drain»
Tesla poursuit le gouvernement américain pour l'élimination des droits de douane sur les pièces importées de Chine
Des plans sont en cours pour des essais cliniques sur les «yeux artificiels» pour restaurer la vision perdue
Vous pouvez vérifier l'état épidémique du nouveau virus corona sur Google Maps
J'ai essayé Lawson "L Chiki Honey Maple Flavor" où la douceur du miel brillant et du sirop d'érable se distingue parmi les épices de L Chiki
Adobe annonce "Liquid Mode", une fonction qui facilite la lecture des PDF sur les smartphones et les ajuste automatiquement.
La Californie décide d'interdire les nouvelles ventes de véhicules à essence
Wikipédia remodèle pour la première fois en 10 ans
La sortie du dernier film MCU "Black Widow" a été reportée, et 2020 sera "la première année sans film MCU depuis 2009"
Google a supprimé progressivement la distribution d'extensions payantes sur le Chrome Web Store
Twitter teste la fonctionnalité "message vocal"
Un type de renard mène une «guerre à grande échelle» sur plusieurs jours, et certains individus regardent le cours de la guerre
Quelle est la cause du phénomène mystérieux selon lequel "Internet disparaît soudainement à 7 heures du matin" pendant un an et demi?
Résumé de ce qui a été trouvé dans le "document Finsen" qui a révélé le soutien au blanchiment d'argent des grandes banques et les problèmes
La direction de la division Android de Google parle de "Android 11"
J'ai acheté un "plat de sauce chili aux crevettes" à Matsuya et l'ai essayé, où le riz blanc devient fou avec une sauce chili avec beaucoup de crevettes.
179 commerçants illicites du dark web ont été arrêtés et des responsables ont publié une déclaration selon laquelle "l'âge d'or du dark web est terminé"
Un homme féroce qui a transformé Minecraft en émulateur Famicom apparaît
Comment un artiste complètement inconnu peut-il gagner des vues en abusant de Spotify?

C'est incroyable.

Formulaire rempli

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

#Définition d'URL
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

#Fonction d'analyse de date
def parseDate(dateData):
    return dt(
        dateData.tm_year,
        dateData.tm_mon,
        dateData.tm_mday,
        dateData.tm_hour,
        dateData.tm_min,
        dateData.tm_sec
    )

#Obtenez et formatez rapidement avec la notation d'inclusion de liste
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
]

#Trier par date
entries.sort(key=lambda x: x['date'], reverse=True)

savedEntries = []

for entry in entries:
    #Afficher le titre,
    print(entry['title'])

    #Demander à l'utilisateur de saisir
    userAction = input()

    if userAction == 'q':
        #Si c'est arrêté, ça se termine
        break
    elif userAction == 's':
        #Si vous enregistrez, stockez dans un tableau
        savedEntries.append(entry)
        print('saved!')

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

en conclusion

Le traitement prend du temps car il collecte les données par lui-même. Il semble bon d'afficher la progression avec tqdm. Je n'ai pas enregistré autant d'URL cette fois, alors saisissez une autre opportunité.

Si vous utilisez Pocket API etc., vous pouvez enregistrer automatiquement dans Pocket.

Même ainsi, Python est difficile, n'est-ce pas? C'était facile, mais pour moi qui suis habitué à TypeScript, c'est assez ennuyeux ...

Recommended Posts

J'ai créé un lecteur de flux rapide en utilisant feedparser en Python
J'ai fait un Line-bot avec Python!
J'ai fait un programme de gestion de la paie en Python!
J'ai créé un programme cryptographique César en Python.
J'ai fait un texte Python
J'ai effectué un processus de connexion / déconnexion en utilisant Python's Bottle.
J'ai fait un jeu de frappe simple avec tkinter de Python
J'ai fait une loterie avec Python.
J'ai fait un jeu de puzzle (comme) avec Tkinter of Python
J'ai fait un chronomètre en utilisant tkinter avec python
J'ai créé un démon avec Python
J'ai créé Chatbot en utilisant l'API LINE Messaging et Python
J'obtiens un attribut impossible à définir lors de l'utilisation de @property en python
J'ai créé un chat-holdem de serveur de jeu de poker en utilisant websocket avec python
J'ai créé Chatbot en utilisant l'API LINE Messaging et Python (2) ~ Server ~
J'ai fait un compteur de caractères avec Python
J'ai essayé d'utiliser l'optimisation bayésienne de Python
Débutant: j'ai créé un lanceur à l'aide d'un dictionnaire
Scraping de sites Web à l'aide de JavaScript en Python
Dessinez une structure arborescente en Python 3 à l'aide de graphviz
J'ai fait une carte hexadécimale avec Python
Après avoir étudié Python3, j'ai créé un Slackbot
J'ai créé un outil de mot de passe en Python.
J'ai fait un jeu rogue-like avec Python
J'ai fait un simple blackjack avec Python
J'ai créé un fichier de configuration avec Python
J'ai fait un simulateur de neurones avec Python
J'ai créé une application Web en Python qui convertit Markdown en HTML
J'ai créé un bot Discord en Python qui se traduit quand il réagit
J'ai créé un script en python pour convertir des fichiers .md au format Scrapbox
[IOS] J'ai créé un widget qui affiche la tendance de Qiita dans Pythonista3. [Python]
J'ai fait un programme pour vérifier la taille d'un fichier avec Python
J'ai écrit FizzBuzz en python en utilisant la machine à vecteurs de support (bibliothèque LIVSVM).
J'ai créé un fichier de dictionnaire python pour Neocomplete
Créer un fichier GIF en utilisant Pillow en Python
J'ai fait une prévision météo de type bot avec Python.
Un mémo que j'ai écrit un tri rapide en Python
J'ai créé une application graphique avec Python + PyQt5
Je veux créer une fenêtre avec Python
J'ai essayé de créer un bloqueur de filles pourries sur Twitter avec Python ①
J'ai écrit une classe en Python3 et Java
[Python] J'ai créé un téléchargeur Youtube avec Tkinter.
Afficher les avis sur les médicaments à l'aide de listes en Python
J'ai essayé de lire un fichier CSV en utilisant Python
J'ai essayé d'ajouter un module Python 3 en C
Créez un fichier MIDI en Python en utilisant pretty_midi
J'ai écrit un analyseur japonais en japonais en utilisant pyparsing.
J'ai fait un simple lecteur RSS ~ Edition C ~
J'ai fait un jeu de cueillette avec Python
Made Mattermost Bot avec Python (+ Flask)
Création du wrapper d'API Qiita Python "qiipy"
J'ai fait un module en langage C qui filtre les images chargées par Python
En Python, j'ai créé un LINE Bot qui envoie des informations sur le pollen à partir des informations de localisation.
J'ai fait un script pour enregistrer la fenêtre active en utilisant win32gui de Python
Créer un bot de collecte de données en Python à l'aide de Selenium
Je souhaite intégrer une variable dans une chaîne Python