Tools like Python Windows GUI Builder make it simple to parse any RSS feed and building a nice GUI can be done easily by combining feedparser and Python4Delphi library, inside Delphi and C++Builder. Python4Delphi (P4D) is a free tool that allows you to execute Python scripts, create new Python modules and types in Delphi.
Table of Contents
What is the feedparser library?
feedparser or Universal Feed Parser is a library to parse Atom and RSS feeds in Python. feedparser is an open-source project. feedparser can handle RSS 0.90, Netscape RSS 0.91, Userland RSS 0.91, RSS 0.92, RSS 0.93, RSS 0.94, RSS 1.0, RSS 2.0, Atom 0.3, Atom 1.0, and CDF feeds. It also parses several popular extension modules, including Dublin Core and Apple’s iTunes extensions.
How do I use feedparser to automatically parse RSS feeds in my apps?
To use feedparser, you will need Python 3.6 or later. feedparser is not meant to run standalone; it is a module for you to use as part of a larger Python program.
feedparser is easy to use; the module is self-contained in a single file, feedparser.py, and it has only one primary public function, parse. parse takes a number of arguments, but only one is required, and it can be a URL, a local filename, or a raw string containing feed data in any format.
This post will guide you on
How do I use the feedparser library for parsing any RSS feed and displaying it in a GUI app?
First, open and run our Python GUI using project Demo1 from Python4Delphi with RAD Studio. Then insert the script into the lower Memo, click the Execute button, and get the result in the upper Memo. You can find the Demo1 source on GitHub. The behind the scene details of how Delphi manages to run your Python code in this amazing Python GUI can be found at this link.
We will take New York Times and Stack Overflow RSS as our examples:
How do I parse an RSS Feed from a URL using Python?
Run the following code inside Python4Delphi Demo01 GUI, to parse data from New York Times Technology category:
1 2 3 4 5 6 7 8 |
import feedparser d = feedparser.parse('https://rss.nytimes.com/services/xml/rss/nyt/Technology.xml') print(d.feed.title) print(d.feed.title_detail) print(d.feed.published) print(d.feed.link) |
You will get this output:
Let’s run another example: Parsing data from Homepage, using its RSS feed.
Run the following code inside Python4Delphi Demo01 GUI:
1 2 3 4 5 6 7 8 9 |
import feedparser d = feedparser.parse('https://rss.nytimes.com/services/xml/rss/nyt/HomePage.xml') print(d.feed.title) print(d.feed.title_detail) print(d.feed.published) print(d.feed.link) print(d.entries) |
Here is the output in Python4Delphi GUI:
You can find all the archives of New York Times RSS feeds here.
How can I parse the Stack Overflow RSS Feed in my app?
Run the following script to parsing data from Stack Overflow RSS Feed. This script is the same as the previous section, except for the URL; its Stack Overflow’s RSS Feed URL:
1 2 3 4 5 6 7 8 |
import feedparser d = feedparser.parse('http://stackoverflow.com/feeds') print(d.feed.title) print(d.feed.title_detail) print(d.feed.link) print(d.entries) |
The output in Python4Delphi GUI:
Congratulations, now you have learned how to run the feedparser library for parsing any RSS feed and displaying it in the Delphi Windows GUI app!
Check out the feedparser library for Python and use it in your projects: https://pypi.org/project/feedparser/.
Check out Python4Delphi which easily allows you to build Python GUIs for Windows using Delphi: https://github.com/pyscripter/python4delphi