Skip to main content
Python Software Foundation 20th Year Anniversary Fundraiser  Donate today!

A classifier for detecting soft 404 pages

Project description

PyPI Version Build Status Code Coverage

A “soft” 404 page is a page that is served with 200 status, but is really a page that says that content is not available.


pip install soft404


The easiest way is to use the soft404.probability function:

>>> import soft404
>>> soft404.probability('<h1>Page not found</h1>')

You can also create a classifier explicitly:

>>> from soft404 import Soft404Classifier
>>> clf = Soft404Classifier()
>>> clf.predict('<h1>Page not found</h1>')


Classifier is trained on 120k pages from 25k domains, with 404 page ratio of about 1/3. With 10-fold cross-validation, PR AUC (average precision) is 0.990 ± 0.003, and ROC AUC is 0.995 ± 0.002.

Getting data for training

Install dev requirements:

pip install -r requirements_dev.txt

Run the crawler for a while (results will appear in pages.jl.gz file):

cd crawler
scrapy crawl spider -o gzip:pages.jl -s JOBDIR=job


First, extract text and structure from html:

./soft404/ pages.jl.gz items

This will produce two files, items.meta.jl.gz and items.items.jl.gz. Next, train the classifier:

./soft404/ items

Vectorizer takes a while to run, but it’s result is cached (the filename where it is cached will be printed on the next run). If you are happy with results, save the classifier:

./soft404/ items --save soft404/clf.joblib


License is MIT.

Project details

Download files

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

Files for soft404, version 0.2.1
Filename, size File type Python version Upload date Hashes
Filename, size soft404-0.2.1.tar.gz (30.3 kB) File type Source Python version None Upload date Hashes View

Supported by

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