Go to file
Mark Perdomo 3a43a3fe7e Added code to check declared encodings first and check them
from kennethreitz/requests/utils.py.  Also I added some superset
encodings I have found in Chinese pages that are mishandled by
chardet/character declarations.
2014-05-13 15:09:47 +08:00
readability Added code to check declared encodings first and check them 2014-05-13 15:09:47 +08:00
tests rename the document_only flag to html_partial 2012-04-17 10:17:14 -04:00
.gitignore Update .gitignore file for venv and nosetests. 2012-04-17 08:47:04 -04:00
Makefile Fix rebase issue in the Makefile 2012-04-17 09:20:23 -04:00
README Released v 0.3, and uploaded to the pypi. 2013-10-10 02:39:37 +07:00
setup.py Allow latest lxml on Mac OS X 10.9, see issue #39 for comments and setup instructions 2014-04-02 15:16:19 +07:00

This code is under the Apache License 2.0.  http://www.apache.org/licenses/LICENSE-2.0

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

http://lab.arc90.com/experiments/readability/

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 ( https://github.com/MHordecki/readability-redux/blob/master/readability/readability.js )
 - Ruby port by starrhorne and iterationlabs
 - Python port by gfxmonk ( https://github.com/gfxmonk/python-readability , based on BeautifulSoup )
 - Decruft effort to move to lxml ( http://www.minvolai.com/blog/decruft-arc90s-readability-in-python/ )
 - "BR to P" fix from readability.js which improves quality for smaller texts.
 - Github users contributions.

Installation::

    easy_install readability-lxml
    or
    pip install readability-lxml

Usage::

    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 http://pypi.python.org/pypi/readability-lxml


Using positive/negative keywords example::

    python -m readability.readability -p intro -n newsindex,homepage-box,news-section -u http://python.org


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"]


Updates

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