Skip to content

rdomains

0.5.0Package record

Get the Category of Content Hosted by a Domain

0packages depend
3.4Kdownloads / year
69.1%test coverage
13/13flavors OK

Overview

About

Get the category of content hosted by a domain. Use Shallalist (service discontinued), 'VirusTotal' (which provides access to lots of services) https://www.virustotal.com/, 'DMOZ' https://archive.org/details/dmoz-rdf-20150327, University Domain list https://github.com/Hipo/university-domains-list, 'OpenAI' 'GPT' models, 'Anthropic' 'Claude' models, or validated machine learning classifiers based on 'Shallalist' data to learn about the kind of content hosted by a domain.

Changes in 0.5.0

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.

  • New source_vintage() reports every category source, when it was last published, whether it is still maintained, and its successor where one exists.
  • shalla_cat(), dmoz_cat() and stevenblack_cat() now return a source_last_published column. For the two dead lists this is a constant; for Steven Black's actively-maintained hosts file it is the fetched file's own date.
  • Looking up against a discontinued source warns **once per session** — not once per call, which is a warning people learn to filter out.
Show all changes in 0.5.0Hide the rest of the changes in 0.5.0

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:

  • page_signals() reports whether a page is an anti-bot interstitial, a domain-parking placeholder, a server's "nothing here" page, or too thin to classify. Vendor presence alone is not a block: reddit, walmart and quora all serve real pages while embedding reCAPTCHA.
  • html_text_content() extracts text, title, description and language.

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

  • get_dmoz_data() built its output path with paste0(), so the documented default outdir = "." produced a hidden .dmoz_domain_category.csv that dmoz_cat() would then fail to find. It now uses file.path(), matching its two siblings.
  • stevenblack_cat(use_file = NULL) re-downloaded roughly 4 MB on **every call**. The file is now cached for the session.

Testing

  • The Shallalist and DMOZ tests download real files; they now carry skip_on_cran() and skip_if_offline() guards, as CRAN policy requires.

From NEWS.md in the release

Install

Health

CRAN checks
13OK
Slowest check: 3.1 min · r-oldrel-macos-x86_64
Status changes
  • OK13 OK2026-08-05
  • NOTE12 OK, 1 NOTE2026-08-01
  • OK13 OK2026-05-16
  • NOTE12 OK, 2 NOTE2026-04-23
  • ERROR11 OK, 2 NOTE, 1 ERROR2026-04-14
Show 3 earlier changesHide 3 earlier changes
  • NOTE12 OK, 2 NOTE2026-03-22
  • ERROR11 OK, 2 NOTE, 1 ERROR2026-03-15
  • NOTE12 OK, 2 NOTE2026-03-10
Advisories

none known

Documentation

In release 0.5.0
READMENoVignettesYes · 1 · staticNEWSYes · 100% structured · mentions 0.5.0Citation fileYes · computed when R runs itWebsitenot declared in DESCRIPTION
Help pages
20includes a package overview page
Examples that run
28%5 run in a plain check · 13 never run
Exported functions with examples
95%
Documented parameters
100%
Return-value docs
79%
Help pages citing references
30%

Downloads

3.4K
CRAN downloads in the past year
Rank #12,054 · ~9/day · ~281/mo
Daily download trend is not available in this view yet.
33730 days
91890 days
3.4K1 year
Compare downloads with other packages →
Also on91 r2u3 autocran

Dependencies

Declared dependencies
23 external dependencies (excludes base and recommended)

Installing rdomains adds 53 packages (31 with compiled code, 32 MB of source tarballs). Heaviest: stringi 11 MB, glmnet 2.7 MB, Rcpp 1.8 MB.

Depends (1)
R >= 4.1.0
LinkingTo (0)
none
Enhances (0)
none
Reverse dependencies
0direct
0indirect

Nothing depends on this yet.

Datasets

People & History

People (1)
Author, Maintainer since 0.1.0 (2016)
Releases (8)

Pick two releases to compare their code metrics.

  • 0.5.0Latest
    record
    2026-08-02 · current release · diff ↗ ·
    added 6 exports
    collect_content, fetch_error_codes, fetch_report, html_text_content, page_signals, source_vintage
  • 0.4.0
    record
    2026-05-13 · diff ↗ ·
    removed 3 exports
    alexa_cat, brightcloud_cat, get_alexa_data
    added 4 exports
    claude_cat, get_stevenblack_data, openai_cat, stevenblack_cat
  • R
    R 4.6.0 released · 2026-04-24
  • R
    R 4.5.0 released · 2025-04-11
  • R
    R 4.4.0 released · 2024-04-24
  • R
    R 4.3.0 released · 2023-04-21
  • R
    R 4.2.0 released · 2022-04-22
  • 0.2.1
    record
    2022-01-15 · diff ↗
  • unarchivedReturned to CRAN
    2021-11-04
  • 0.2.0
    record
    2021-11-04 · diff ↗
  • archivedRemoved from CRAN
    2021-09-23
    policy violation On Internet access
  • R
    R 4.1.0 released · 2021-05-18
  • unarchivedReturned to CRAN
    2020-08-11
  • 0.1.9
    record
    2020-08-11 · diff ↗ ·
    removed 1 export
    trusted_cat
    added 1 export
    uni_cat
  • R
    R 4.0.0 released · 2020-04-24
  • R
    R 3.6.0 released · 2019-04-26
Show 7 earlier eventsHide 7 earlier events
  • archivedRemoved from CRAN
    2018-05-03
    depends on archived package 'RSelenium'
  • R
    R 3.5.0 released · 2018-04-23
  • 0.1.7
    record
    2018-01-28 · diff ↗ ·
    added 2 exports
    brightcloud_cat, not_news
  • R
    R 3.4.0 released · 2017-04-21
  • 0.1.5
    record
    2016-11-03 · diff ↗
  • 0.1.0
    record
    2016-06-16
  • R
    R 3.3.0 released · 2016-05-03

Package metadata

First published
2016-06-16
Total releases
8 / 10 yrs
License
MIT + file LICENSE OSI
Minimum R
≥ 4.1.0
Download size
350 KB

Cite

Cite this package

Run in R for the authors' preferred citation:

citation("rdomains")

The package provides a citation file that builds its entry when R runs it. Run citation() to see it.

Cite the R Observatory

For a number measured here: a download total, a coverage figure, an archival date.

APA

Balamuta, J. J. (2026). R Observatory: Metrics for rdomains version 0.5.0 [Data set]. HJJB, LLC. Data release v2026-10-24. https://doi.org/10.5281/zenodo.21843040

From data release v2026-10-24, which the citation names so these numbers can be found later. More on citing and the projects behind them.

Report a problem with this page →

Privacy choices

These apply to this browser and are stored on this device only. Nothing about your choice is sent to us.

Read the privacy policy