OCDS Kingfisher Collect

Build Status Coverage Status

Kingfisher Collect is a tool for downloading OCDS data and storing it on disk and/or sending it to an instance of Kingfisher Process for processing.

(If you are viewing this on GitHub, open the full documentation for additional details.)

You can:

You can also try using Kingfisher Collect with Scrapy Cloud.

How it works

Kingfisher Collect is built on the Scrapy framework. Using this framework, we have authored “spiders” that you can run in order to “crawl” data sources and extract OCDS data.

When collecting data from a data source, each of its OCDS files will be written to a separate file on your computer. (Depending on the data source, an OCDS file might be a record package, release package, individual record or individual release.)

By default, these files are written to a data directory (you can change this) within your kingfisher-collect directory (which you will create during installation). Each spider creates its own directory within the data directory, and each crawl of a given spider creates its own directory within its spider’s directory. For example, if you run the zambia spider (learn how), then the directory hierarchy will look like:

└── data
    └── zambia
        └── 20200102_030405
            ├── <...>.json
            ├── <...>.fileinfo
            └── <...>

As you can see, the data directory contains a zambia spider directory (matching the spider’s name), which in turn contains a 20200102_030405 crawl directory (matching the time at which you started the crawl – in this case, 2020-01-02 03:04:05).

The crawl’s directory will contain .json and .fileinfo files. The JSON files are the OCDS data. Each .fileinfo file contains metadata about a corresponding JSON file: the URL at which the JSON file was retrieved, along with other details.