Go to file
Martin Thurau aa4132f57a Adds Python 3.4 support.
Code now supports Python 2.6, 2.7 and 3.4. PYthon 3.3 isn't support
because of some issues with the parser and the difference between old and
new `raise` syntax.
2015-04-29 16:18:21 +02:00
readability Adds Python 3.4 support. 2015-04-29 16:18:21 +02:00
tests Added a test for issue #48 but can't reproduce it -- seems to work fine. 2015-04-27 15:59:18 +06:00
.gitignore Adds tox configuration. 2015-04-29 16:16:46 +02:00
Makefile Fixed makefile testing. 2015-04-27 14:32:40 +06:00
README Releasing as version 0.4 2015-04-27 14:54:13 +06:00
requirements.txt Adds tox configuration. 2015-04-29 16:16:46 +02:00
setup.py Adds Python 3.4 support. 2015-04-29 16:18:21 +02:00
tox.ini Adds Python 3.4 support. 2015-04-29 16:18:21 +02: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.3 Added Document.encoding, positive_keywords and negative_keywords
 - 0.4 Added Videos loading and allowed more images per paragraph