Parse atom RSS feed with xml.dom.minidom
Nope, nope, nope.


feed = type('Feed', (object,), {})
feed.entries.append(type('Entry', (feed,), entry_dict))



The entire point of OOP is to have pre-defined classes, as contracts to follow. Since your classes are always the same, you should just define them with the class keyword.  I recommend attrs to make it look nicely.

In a good design, classes are never created on the fly, out of thin air.  They’re always defined in code, with a set of attributes that should also never change. (I’m not a fan of Python’s lenient style — Java, for example, makes it hard/impossible to create classes and new attributes at runtime.)

Or alternatively, you could make those regular lists of regular dicts.  Not everything needs to be a class.

More complaints:


Entry should not inherit from Feed. They’re two separate, unrelated things.

dom = minidom.parseString(res.read().decode('latin-1'))



99% of feeds in the wild are in UTF-8, and you should check the encoding in the &lt;?xml ?&gt; declaration.