commit
5337adc590
@ -1,62 +0,0 @@
|
|||||||
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
|
|
||||||
|
|
||||||
To open resulting page in browser::
|
|
||||||
|
|
||||||
python -m readability.readability -b -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
|
|
||||||
- 0.5 Preparing a release to support Python versions 2.6, 2.7, 3.3 and 3.4
|
|
||||||
- 0.6 Finally a release which supports Python versions 2.6, 2.7, 3.3 and 3.4
|
|
@ -0,0 +1,61 @@
|
|||||||
|
python-readability
|
||||||
|
==================
|
||||||
|
|
||||||
|
Given a html document, it pulls out the main body text and cleans it up.
|
||||||
|
|
||||||
|
This is a python port of a ruby port of `arc90's readability
|
||||||
|
project <http://lab.arc90.com/experiments/readability/>`__.
|
||||||
|
|
||||||
|
Installation
|
||||||
|
------------
|
||||||
|
|
||||||
|
It's easy using ``pip``, just run:
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
$ pip install readability-lxml
|
||||||
|
|
||||||
|
Usage
|
||||||
|
-----
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
>> import requests
|
||||||
|
>> from readability import Document
|
||||||
|
>>
|
||||||
|
>> response = requests.get('http://example.com')
|
||||||
|
>> doc = Document(response.text)
|
||||||
|
>> doc.title()
|
||||||
|
>> 'Example Domain'
|
||||||
|
|
||||||
|
Change Log
|
||||||
|
----------
|
||||||
|
|
||||||
|
- 0.3 Added Document.encoding, positive\_keywords and
|
||||||
|
negative\_keywords
|
||||||
|
- 0.4 Added Videos loading and allowed more images per paragraph
|
||||||
|
- 0.5 Preparing a release to support Python versions 2.6, 2.7, 3.3 and
|
||||||
|
3.4
|
||||||
|
- 0.6 Finally a release which supports Python versions 2.6, 2.7, 3.3
|
||||||
|
and 3.4
|
||||||
|
|
||||||
|
Licensing
|
||||||
|
=========
|
||||||
|
|
||||||
|
This code is under `the Apache License
|
||||||
|
2.0 <http://www.apache.org/licenses/LICENSE-2.0>`__ license.
|
||||||
|
|
||||||
|
Thanks to
|
||||||
|
---------
|
||||||
|
|
||||||
|
- Latest
|
||||||
|
`readability.js <https://github.com/MHordecki/readability-redux/blob/master/readability/readability.js>`__
|
||||||
|
- Ruby port by starrhorne and iterationlabs
|
||||||
|
- `Python port <https://github.com/gfxmonk/python-readability>`__ by
|
||||||
|
gfxmonk
|
||||||
|
- `Decruft
|
||||||
|
effort <http://www.minvolai.com/blog/decruft-arc90s-readability-in-python/>`__
|
||||||
|
to move to lxml
|
||||||
|
- "BR to P" fix from readability.js which improves quality for smaller
|
||||||
|
texts
|
||||||
|
- Github users contributions.
|
Loading…
Reference in New Issue