NEWS


rdomains 0.5.0 (2026-08-02)

A label has a date, and now the package says so

Two of the four lookup sources are no longer published: DMOZ closed in March 2017 and Shallalist stopped in 2022. Their labels were correct when assigned, but domains expire and change hands, so a lookup today can return the previous registrant's category. Until now that answer was presented identically to one from a list updated last week.

The sibling project piedomains measured what this confusion costs: its worst class disagreed with its own page content 71% of the time, and the cause was not bad annotation but roughly a decade between the label and the page. Only 60% of the domains it trained on still resolve.

Fetch page content, not just look domains up

New collect_content() fetches homepage HTML and text, so a domain can be classified on what it says today rather than on what a list said years ago. It returns one row per requested domain, never dropped, each carrying status, stage, error_code and retryable -- so a transient failure is distinguishable from a permanent one and only the right rows get retried. fetch_error_codes() documents the closed set of reasons; fetch_report() summarises a run.

Supporting functions, all usable on their own if you already hold HTML:

The crawler identifies itself as rdomains/<version> with a contact URL, obeys robots.txt including Crawl-delay, spaces requests to the same host, caps the response body, follows redirects by hand so every hop is re-validated, and refuses hosts resolving to private or link-local addresses.

Static HTML only -- no headless browser, so a JavaScript-rendered page comes back thin and says so.

Bug fixes

Testing

rdomains 0.4.0 (2026-05-13)

Breaking Changes

Major Changes

API Updates

Improvements

Internal Changes

Breaking Changes

rdomains 0.3.0

rdomains 0.2.1 (2022-01-15)

rdomains 0.2.0 (2021-11-04)

rdomains 0.1.9 (2020-08-11)

rdomains 0.1.8

rdomains 0.1.7 (2018-01-28)

rdomains 0.1.6

rdomains 0.1.5 (2016-11-03)

rdomains 0.1.0 (2016-06-16)