Earlier client work · not an OmniTechs case

The register project stored a company. It does not explain how it got past a block.

A client wanted the businesses of one country as structured records. The 2022 code stores the company, the people, the activity, and progress by page. How requests were spread so a source would not block them is not on this page.

What is shown, and what is withheld

business_fetcher is a public Django repository from 3 January 2022, with 94 commits from one account. The Business model has a unique URL, a registry code, legal form, VAT fields, an employee count, and a flag for whether the record is complete. Activity stores EMTAK and NACE codes. Page and URL track which page is finished and which URL failed. There is also a Proxy model.

EMTAK belongs to Estonia, and the deploy helper names the container rikfetcherapp. This is earlier client work from before OmniTechs, not a studio customer case, and not a guide for getting around a source. The demo password and the server address in the README are not repeated here.

The record

What remained per company

The columns come from fetcher/models.py. This is the shape of the dataset, not an export.

Fields from the business model
PartFields in the codeWhat this page leaves out
BusinessName, registry code, legal form, status, VAT number, staff count, email, unique URL, complete or still in processNo export and no bypass
PersonName, role, and a person identifier, tied to the companyNo personal data from a live register
ActivityArea, EMTAK code, NACE code, and a source noteNo claim that every record is complete
ProgressA page number with a finished flag, and a URL with a failed flagNo success rate

The job

One country, as rows instead of as websites

The founder describes a client who wanted every business in one country. The code turns that into a queue that can resume: a page is finished or not, a URL has failed or not, a company is complete or still marked in_process.

That is the useful part for a later reader. A dataset is only a dataset when you can see what is missing.

What this page refuses

A proxy table is not a method this page will teach

The founder says collection happened in several rounds so the source would not block it. The code has a Proxy table with a last-used time. This page names that fact and stops.

OmniTechs does not publish how to spread, disguise, or retry requests in order to slip past a block. When a source has an allowed API or an open file, that is the connection to investigate first. A register that refuses bulk traffic is a limit of the source, not a puzzle to win.

Start from a source that allows the read.

Describe which register or API already offers the data, and which fields you actually need.