
Building a Content Aggregator and Working With RSS in Python
11/19/21 • 57 min
Have you wanted to work with RSS feeds in Python? Maybe you’re looking for a new project to build for your portfolio that uses Django, unit tests, and custom commands. This week on the show, we have Real Python author Ricky White to talk about his recent step-by-step project titled, “Build a Content Aggregator in Python.”
Ricky has been authoring the Real Python interview series for several years and was formerly our Community Manager. He talks about what inspired him to create this project and the Python technology and libraries to build it. He also shares advice about adding tests to personal portfolio projects.
We start the show by discussing Python’s GIL (Global Interpreter Lock) and the efforts to potentially remove it in future versions of Python. This change could make a significant impact on Python code running on multi-core processors. We talk about two recent articles covering the developments.
Course Spotlight: Get Started With Django: Build a Portfolio App
In this course, you’ll learn the basics of creating powerful web applications with Django, a Python web framework. You’ll build a portfolio website to showcase your web development projects, complete with a fully functioning blog.
Topics:
- 00:00:00 – Introduction
- 00:02:07 – Citizenship
- 00:03:52 – Ricky’s Real Python interviews
- 00:05:55 – Upcoming interview with Eric Wastl about Advent of Code
- 00:08:05 – Notes From the Meeting On Python GIL Removal
- 00:18:41 – Sponsor: Cloudsmith
- 00:19:26 – Build a Content Aggregator in Python
- 00:20:28 – Django background
- 00:23:37 – What web technologies were you using before Python?
- 00:25:07 – What motivated the project?
- 00:26:46 – Technical hurdles
- 00:30:52 – Including tests in a portfolio project
- 00:32:56 – Django custom commands
- 00:37:02 – Video Course Spotlight
- 00:38:16 – RSS Feeds - Really Simple Syndication and Podcasts
- 00:42:16 – Working with django-apscheduler
- 00:47:06 – Taking the project further and CSS frameworks
- 00:51:04 – What are you excited about in the world of Python?
- 00:53:58 – What do you want to learn next?
- 00:55:52 – Shoutouts and social connections
- 00:56:57 – Thanks and goodbye
Show Links:
- About Ricky White – Real Python
- Build a Content Aggregator in Python: Real Python project-based tutorial
- About - Advent of Code 2021
- A viable solution for Python concurrency: LWN.net
- Notes From the Meeting On Python GIL Removal Between Python Core and Sam Gross
- What Is the Python Global Interpreter Lock (GIL)? – Real Python
- nogil: Python Multithreading without GIL
- Walk AS One
- What is Ankylosing Spondylitis?
- Spondy News
- Writing custom django-admin commands | Django documentation
- django-apscheduler - A Django app that adds a lightweight wrapper around APScheduler
- RabbitMQ - Messaging that just works
- RSS: Really Simple Syndication- Wikipedia
- Flipboard - Stories from 28,875 topics personalized for you
- NetNewsWire: Free and Open Source RSS Reader for Mac and iOS
- Welcome to Feedly
- Bootstrap - The most popular HTML, CSS, and JS library in the world
- Tailwind CSS - Rapidly build modern websites without ever leaving your HTML
- Python Software Foundation News: 2021 End of the year fundraiser!
- Structural Pattern Matching Python 3.10: Cool New Features for You to Try
Have you wanted to work with RSS feeds in Python? Maybe you’re looking for a new project to build for your portfolio that uses Django, unit tests, and custom commands. This week on the show, we have Real Python author Ricky White to talk about his recent step-by-step project titled, “Build a Content Aggregator in Python.”
Ricky has been authoring the Real Python interview series for several years and was formerly our Community Manager. He talks about what inspired him to create this project and the Python technology and libraries to build it. He also shares advice about adding tests to personal portfolio projects.
We start the show by discussing Python’s GIL (Global Interpreter Lock) and the efforts to potentially remove it in future versions of Python. This change could make a significant impact on Python code running on multi-core processors. We talk about two recent articles covering the developments.
Course Spotlight: Get Started With Django: Build a Portfolio App
In this course, you’ll learn the basics of creating powerful web applications with Django, a Python web framework. You’ll build a portfolio website to showcase your web development projects, complete with a fully functioning blog.
Topics:
- 00:00:00 – Introduction
- 00:02:07 – Citizenship
- 00:03:52 – Ricky’s Real Python interviews
- 00:05:55 – Upcoming interview with Eric Wastl about Advent of Code
- 00:08:05 – Notes From the Meeting On Python GIL Removal
- 00:18:41 – Sponsor: Cloudsmith
- 00:19:26 – Build a Content Aggregator in Python
- 00:20:28 – Django background
- 00:23:37 – What web technologies were you using before Python?
- 00:25:07 – What motivated the project?
- 00:26:46 – Technical hurdles
- 00:30:52 – Including tests in a portfolio project
- 00:32:56 – Django custom commands
- 00:37:02 – Video Course Spotlight
- 00:38:16 – RSS Feeds - Really Simple Syndication and Podcasts
- 00:42:16 – Working with django-apscheduler
- 00:47:06 – Taking the project further and CSS frameworks
- 00:51:04 – What are you excited about in the world of Python?
- 00:53:58 – What do you want to learn next?
- 00:55:52 – Shoutouts and social connections
- 00:56:57 – Thanks and goodbye
Show Links:
- About Ricky White – Real Python
- Build a Content Aggregator in Python: Real Python project-based tutorial
- About - Advent of Code 2021
- A viable solution for Python concurrency: LWN.net
- Notes From the Meeting On Python GIL Removal Between Python Core and Sam Gross
- What Is the Python Global Interpreter Lock (GIL)? – Real Python
- nogil: Python Multithreading without GIL
- Walk AS One
- What is Ankylosing Spondylitis?
- Spondy News
- Writing custom django-admin commands | Django documentation
- django-apscheduler - A Django app that adds a lightweight wrapper around APScheduler
- RabbitMQ - Messaging that just works
- RSS: Really Simple Syndication- Wikipedia
- Flipboard - Stories from 28,875 topics personalized for you
- NetNewsWire: Free and Open Source RSS Reader for Mac and iOS
- Welcome to Feedly
- Bootstrap - The most popular HTML, CSS, and JS library in the world
- Tailwind CSS - Rapidly build modern websites without ever leaving your HTML
- Python Software Foundation News: 2021 End of the year fundraiser!
- Structural Pattern Matching Python 3.10: Cool New Features for You to Try
Previous Episode

The Legacy of OLPC and Charismatic Pitfalls in Teaching Programming
Do you remember the One Laptop Per Child program? What went wrong, and what can we learn from the program’s failure? What are the potential pitfalls of charismatic technology, and how can we avoid them when introducing students to programming? This week on the show, former guest Al Sweigart and author Morgan Ames are here to talk about her book “The Charisma Machine - The Life, Death, and Legacy of One Laptop per Child.”
We discuss the OLPC program and how idealized visions of our programming backgrounds can become traps. Morgan explains how these utopian visions are still used to attempt to disrupt education. Along with this cautionary tale, we also talk about educational programs that are working and how entry points to programming are changing.
Course Spotlight: Using Pandas to Make a Gradebook in Python
With this course and Python project, you’ll build a script to calculate grades for a class using pandas. The script will quickly and accurately calculate grades from a variety of data sources. You’ll see examples of loading, merging, and saving data with pandas, as well as plotting some summary statistics.
Topics:
- 00:00:00 – Introduction
- 00:02:13 – Morgan’s background
- 00:02:58 – Computer Science and Information Science
- 00:04:46 – Early introduction of computers to schools
- 00:08:25 – What was the One Laptop Per Child (OLPC) Program?
- 00:12:32 – Turtle art and Scratch
- 00:16:34 – Sponsor: CData Software
- 00:17:15 – What is the global south?
- 00:19:12 – How does charisma apply to objects and technology?
- 00:28:30 – Python language design and Learn to Code
- 00:34:53 – Media technology scares and the self taught coder
- 00:40:35 – Video Course Spotlight
- 00:41:41 – Technically precocious boys and exclusion of others
- 00:43:47 – Minecraft and technology maintenance skills
- 00:49:08 – Skewed utopian visions and lack of ongoing support
- 00:52:54 – Shifting feminine vs masculine perceived roles in computing
- 01:02:41 – Changing entry points for programming
- 01:09:00 – The why of “learn to code” and empowerment
- 01:13:13 – Metaverse, nostalgia, and dystopia
- 01:14:45 – The Diamond Age and Code Hero Kickstarter
- 01:16:53 – Avoiding future charismatic traps
- 01:18:28 – Shoutouts and social connections
- 01:21:04 – Thanks and goodbyes
Show Links:
- Morgan G. Ames: Personal Website
- The Charisma Machine: The Life, Death, and Legacy of One Laptop per Child
- Al Sweigart: Personal Website
- The OLPC Wiki
- Logo History: Logo Foundation
- Seymour Papert: Wikipedia article
- Mitchel Resnick - LEGO Papert Professor of Learning Research at the MIT Media Lab
- Sounding Out with the OLPC XO: Linux Journal
- Scratch: The world’s largest free coding community for kids
- VR Will Make Life Better—Or Just Be an Opiate for the Masses
- The Perils of Using Technology to Solve Other People’s Problems
- Gender & Computing - Nathan Ensmenger
- Disruptive Fixation: School Reform and the Pitfalls of Techno-Idealism
- Connected Learning Lab: Research Themes
- STEM vs. STEAM: Why One Letter Matters
- Black Girls CODE
- Code Hero: A Game That Teaches You To Make Games
- Chasing Innovation: The Limits of Entrepreneurship - Online talk
- Turkopticon helps the people in the ‘crowd’ of crowdsourcing watch out for each other—...
Next Episode

Discussing Type Hints, Protocols, and Ducks in Python
There seem to be three kinds of Python developers: those unaware of type hints or have no opinion, ones that embrace them, and others who have an allergic reaction at the mention of them. Python is famously a dynamically typed language, but there are advantages to adding type hints to your code. This week on the show, we have Luciano Ramalho to discuss his recent talk titled, “Type hints, protocols, and good sense.”
Luciano was not a fan of type hints. He’s only recently come around to their potential with the introduction of protocols in PEP 544. Python has adopted a gradual type system that is optional at all levels. We discuss the advantages, pitfalls, and recent developments around type hinting in Python.
We also talk about the second edition of Luciano’s book Fluent Python. He researched type hints in-depth for the book, which led to his recent conference talks on the subject. He also shares his experience with adding opinionated asides to the book in a fun and unique way.
Course Spotlight: Python Type Checking
In this course, you’ll look at Python type checking. Traditionally, types have been handled by the Python interpreter in a flexible but implicit way. Recent versions of Python allow you to specify explicit type hints that can be used by different tools to help you develop your code more efficiently.
Topics:
- 00:00:00 – Introduction
- 00:02:02 – Are you interested in creative uses for Python?
- 00:04:41 – Protocol: The keystone of type hints
- 00:08:14 – What is duck typing?
- 00:12:44 – Protocols declaring one method and emerging from a code base
- 00:17:04 – An example where type hint was too lax
- 00:21:20 – What if Python always had a strict type system?
- 00:33:23 – Sponsor: Cloudsmith
- 00:34:09 – Bias in companies using type hints, and projects that fail checking
- 00:40:27 – Background on personal use of type hints and added complexity
- 00:45:07 – Unsuitability of type hints for checking business rules
- 00:52:30 – Video Course Spotlight
- 00:53:46 – Fluent Python, 2nd edition
- 00:56:05 – Who is the intended developer for the book?
- 00:58:12 – Soapbox sections of the book
- 00:59:35 – What were things you were excited to update or add to the book?
- 01:05:46 – Metaprogramming portion of the book
- 01:08:17 – What are you excited about in the world of Python?
- 01:10:35 – What do you want to learn next?
- 01:18:41 – Shoutouts, plugs, and/or social connections
- 01:19:47 – Thanks and goodbye
Show Links:
- Fluent Python, 2nd Edition
- Protocol: The keystone of type hints - Luciano Ramalho | PyCon US 2021
- Type hints, protocols, and good sense: PyCon India 2021 - Speaker Deck
- Generate buzz with realtime FM audio synthesis - Łukasz Langa | PyCon US 2021
- Garoa Hacker Clube
- Processing.py - Tutorials
- PEP 544 – Protocols: Structural subtyping (static duck typing) | Python.org
- typeshed: Collection of library stubs for Python, with static types
- Python Type Checking (Guide) – Real Python
- Protocols and structural subtyping — Mypy documentation
- Dependent type - Wikipedia
- microsoft/pyright: Static type checker for Python
- Welcome to mypy documentation!
- PEP 487 – Simpler customisation of class creation | Python.org
- PEP 636 – Structural Pattern Matching: Tutorial | Python.org
- What’s New In Python 3.10 — Better error messages
- Flutter - Build apps for any screen
- Ramalho.org/wiki
If you like this episode you’ll love

The Edtech Podcast

The Why And The What – Product Management Podcast

The Art of LiveOps

CodeWinds - Leading edge web developer news and training | javascript / React.js / Node.js / HTML5 / web development - Jeff Barczewski

Joomla Beat Podcast | Web design, development, online marketing, social media & website management
Episode Comments
Featured in these lists
Generate a badge
Get a badge for your website that links back to this episode
<a href="https://goodpods.com/podcasts/the-real-python-podcast-186798/building-a-content-aggregator-and-working-with-rss-in-python-17750372"> <img src="https://storage.googleapis.com/goodpods-images-bucket/badges/generic-badge-1.svg" alt="listen to building a content aggregator and working with rss in python on goodpods" style="width: 225px" /> </a>
Copy