Skip to main content

Clean up HTML using BeautifulSoup and filter rules.

Project description

collective.soupstrainer

Quite often there is a need to clean up HTML from some source, be it user input or data gathered by scraping, which needs to be cleaned up. With the SoupStrainer class in collective.soupstrainer this is made easy. It uses beautifulsoup4 to parse and clean up HTML. The constructor of the class takes four arguments.

exclusions
This is a list of tuples with two items each. The first item is a list of tag names, the second item is a list of attributes. If the list of attributes is empty, then each tag in the first list is completely removed from the passed in HTML. If the list of tags is empty, then each attribute listed is completely removed. If there are both tags and attributes listed, then the attributes are only removed from matching tags.
style_whitelist
This is a white list of CSS styles allowed in ‘style’ attributes. All other styles are removed.
class_blacklist
This is a black list for CSS classes. Each matching class is removed from ‘class’ attributes.
parser
This is the parser used by beautifulsoup4, when the strainer is called with a string. It must be an installed parser for beautifulsoup4, defaults to html.parser

An instance of the SoupStrainer class can be called directly with one argument. The argument can either be a string, in which case it will internally be parsed by beautifulsoup4 and the result will be unicode (or string in python 3), or it can be a parsed HTML tree created by beautifulsoup4, in which case it will be modified in place and be returned again.

Changelog

2.2 (2021-03-25)

  • Do not stop after the first replace of a tag which is to be excluded. (#8)
  • Add support for Python 3.8 and 3.9.

2.1 (2019-02-06)

  • Add support for Python 3 and PyPy.

2.0 (2017-10-19)

Backwards incompatible changes

  • Update to beautifulsoup4.
  • Add a parameter parser to SoupStrainer which specifies the parser used by beautifulsoup4.

1.0 - 2008-11-14

  • Initial release

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for collective.soupstrainer, version 2.2
Filename, size File type Python version Upload date Hashes
Filename, size collective.soupstrainer-2.2.tar.gz (10.6 kB) File type Source Python version None Upload date Hashes View
Filename, size collective.soupstrainer-2.2-py2.py3-none-any.whl (5.5 kB) File type Wheel Python version py2.py3 Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page