Package: boilerpy3
BoilerPy3AboutBoilerPy3 is a native Pythonportof Christian Kohlschütter'sBoilerpipelibrary, released under the Apache 2.0 Licence.This package is based onsammyer'sBoilerPy, specificallymercuree'sPython3-compatible fork. This fork updates the codebase to be more Pythonic (proper attribute access, docstrings, type-hinting, snake case, etc.) and make use Python 3.6 features (f-strings), in addition to switching testing frameworks from Unittest to PyTest.Note: This package is based on Boilerpipe 1.2 (at or beforethis commit), as that's when the code was originally ported to Python. I experimented with updating the code to match Boilerpipe 1.3, however because it performed worse in my tests, I ultimately decided to leave it at 1.2-equivalent.InstallationTo install the latest version from PyPI, execute:pipinstallboilerpy3If you'd like to try out any unreleased features you can install directly from GitHub like so:pipinstallgit+https://github.com/jmriebold/BoilerPy3UsageText ExtractionThe top-level interfaces are the Extractors. Use theget_content()methods to extract the filtered text.fromboilerpy3importextractorsextractor=extractors.ArticleExtractor()# From a URLcontent=extractor.get_content_from_url('http://example.com/')# From a filecontent=extractor.get_content_from_file('tests/test.html')# From raw HTMLcontent=extractor.get_content('<html><body><h1>Example</h1></body></html>')Marked HTML ExtractionTo extract the HTML chunks containing filtered text, use theget_marked_html()methods.fromboilerpy3importextractorsextractor=extractors.ArticleExtractor()# From a URLcontent=extractor.get_marked_html_from_url('http://example.com/')# From a filecontent=extractor.get_marked_html_from_file('tests/test.html')# From raw HTMLcontent=extractor.get_marked_html('<html><body><h1>Example</h1></body></html>')OtherAlternatively, useget_doc()to return a Boilerpipe document from which you can get more detailed information.fromboilerpy3importextractorsextractor=extractors.ArticleExtractor()doc=extractor.get_doc_from_url('http://example.com/')content=doc.contenttitle=doc.titleExtractorsAll extractors have araise_on_failureparameter (defaults toTrue). When set toFalse, theExtractorwill handle exceptions raised during text extraction and return any text that was successfully extracted. Leaving this at the default setting may be useful if you want to fall back to another algorithm in the event of an error.DefaultExtractorUsually worse than ArticleExtractor, but simpler/no heuristics. A quite generic full-text extractor.ArticleExtractorA full-text extractor which is tuned towards news articles. In this scenario it achieves higher accuracy than DefaultExtractor. Works very well for most types of Article-like HTML.ArticleSentencesExtractorA full-text extractor which is tuned towards extracting sentences from news articles.LargestContentExtractorA full-text extractor which extracts the largest text component of a page. For news articles, it may perform better than the DefaultExtractor but usually worse than ArticleExtractorCanolaExtractorA full-text extractor trained onkrdwrdCanola. Works well with SimpleEstimator, too.KeepEverythingExtractorDummy extractor which marks everything as content. Should return the input text. Use this to double-check that your problem is within a particular Extractor or somewhere else.NumWordsRulesExtractorA quite generic full-text extractor solely based upon the number of words per block (the current, the previous and the next block).NotesGetting Content from URLsWhile BoilerPy3 providesextractor.*_from_url()methods as a convenience, these are intended for testing only. For more robust functionality, in addition to full control over the request itself, it is strongly recommended to use theRequests packageinstead, callingextractor.get_content()with the resulting HTML.importrequestsfromboilerpy3importextractorsextractor=extractors.ArticleExtractor()# Make request to URLresp=requests.get('http://example.com/')# Pass HTML to Extractorcontent=extractor.get_content(resp.text)