A library for querying custom and third party web address blacklists and whitelists.
- 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
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 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 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.
Install using pip:
$ pip install spam-lists
To be able to run tests, install test extras:
$ pip install spam-lists[test]
You can also install dev extras, currently containing pylint and restview:
$ pip install spam-lists[dev]