Skip to content

rtwnt/spam-lists

Repository files navigation

spam-lists

A library for querying custom and third party web address blacklists and whitelists.

Features

  • client classes for Google Safe Browsing Lookup API and hpHosts services
  • support for custom DNSBL service clients
  • preconfigured clients for SURBL, Spamhaus ZEN and Spamhaus DBL
  • support for querying and populating custom host whitelists and blacklists
  • combining multiple URL testers into a composite tester
  • optional querying for redirect URL addresses when using a composite URL tester
  • support for Python 2 and 3

Usage

Simple test for membership of a host value in a host blacklist:

>>> from spam_lists import SPAMHAUS_DBL
>>> 'dbltest.com' in SPAMHAUS_DBL
True

lookup(host_value) method returns a named tuple containing:

  • a listed host that is a parent of a searched domain, or a listed ip address equal to one searched in the blacklist
  • source of the returned information as an instance of the client used to search for the value
  • a set of classificiation terms associated with the value
>>> SPAMHAUS_DBL.lookup('dbltest.com')
AddressListItem(value=u'dbltest.com', ...)

Testing if there is any spam URL in a sequence:

>>> urls_to_test = (
'http://google.com',
'http://wikipedia.org',
'http://dbltest.com'
)
>>> SPAMHAUS_DBL.any_match(urls_to_test)
True

Filtering recognized spam URLs out of a sequence of values returns a generator object that yields the spam URLs:

>>> result = SPAMHAUS_DBL.filter_matching(urls_to_test)
>>> result
<generator object <genexpr> at 0xb4f60a7c>
>>> list(result)
['http://dbltest.com']

Calling lookup_matching(urls) returns a generator object yielding instances of the AddressListItem named tuple for matching URLs:

>>> result = SPAMHAUS_DBL.lookup_matching(urls_to_test)
>>> result
<generator object lookup_matching at 0xb4f60e3c>
>>> list(result)
[AddressListItem(value=u'dbltest.com', ...)]

For further information, read spam_lists package docstring.

Installation

Install using pip:

$ pip install spam-lists

To be able to run tests, install test extras:

$ pip install spam-lists[test]

License

MIT
See LICENSE

About

Web address blacklist/whitelist library for Python

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages