fast python port of arc90's readability tool, updated to match latest readability.js!
HTML Python Makefile
Pull request Compare This branch is 45 commits behind buriy:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


This code is under the Apache License 2.0.

This is a python port of a ruby port of arc90's readability project

In few words,
Given a html document, it pulls out the main body text and cleans it up.
It also can clean up title based on latest readability.js code.

Based on:
 - Latest readability.js ( )
 - Ruby port by starrhorne and iterationlabs
 - Python port by gfxmonk ( , based on BeautifulSoup )
 - Decruft effort to move to lxml ( )
 - "BR to P" fix from readability.js which improves quality for smaller texts.
 - Github users contributions.


    easy_install readability-lxml
    pip install readability-lxml


    from readability.readability import Document
    import urllib
    html = urllib.urlopen(url).read()
    readable_article = Document(html).summary()
    readable_title = Document(html).short_title()

Command-line usage::

    python -m readability.readability -u

Using positive/negative keywords example::

    python -m readability.readability -p intro -n newsindex,homepage-box,news-section -u

Document() kwarg options:

 - attributes:
 - debug: output debug messages
 - min_text_length:
 - retry_length:
 - url: will allow adjusting links to be absolute
 - positive_keywords: the list of positive search patterns in classes and ids, for example: ["news-item", "block"]
 - negative_keywords: the list of negative search patterns in classes and ids, for example: ["mysidebar", "related", "ads"]


 - 0.2.5 Update for uploading .tar.gz to pypi
 - 0.2.6 Don't crash on documents with no title
 - Document.short_title() properly works
 - 0.3 Added Document.encoding, positive_keywords and negative_keywords