Python’s Universal Feed Parser, from Common Lisp
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

burgled-feedparser: Python’s Universal Feed Parser, from Common Lisp

burgled-feedparser provides a Common Lisp interface to Python’s Universal Feed Parser using the burgled-batteries library.


(asdf:load-system "burgled-feedparser")
(burgled-feedparser:parse "")
; => #<HASH-TABLE>

Why burgled-feedparser

I like Common Lisp better than Python. Python, on the other hand, has the defacto library for parsing feeds. Rather than tackle the immense job of attempting to port it and any dependencies which don’t current exist in CL; or writing some code in Python which outputs into a specific format that then must be parsed on the Lisp side; it seemed best to simply integrate the Python library into the CL image itself.

Basically, why port what you can subsume?

Public API

burgled-feedparser has four exported symbols.

The Python function feedparser.parse(). This translates CPython pointers into Lisp objects as per BURGLED-BATTERIES.
The same as #’PARSE, except it does not do pointer translation.
The variable feedparser.USER_AGENT.
A general reader to make extracting values from nested structures easier. (Probably belongs in burgled-batteries.)

To Do

  • time struct support (requires work on burgled-batteries)
  • more advanced feedparser options (HTML cleaner settings, etc.)