Skip to main content

Tools for fetching OCRed text of Library of Congress items.

Project description

README

This fetches full text from Library of Congress OCR files for LOC items. It returns the text, when found, and None otherwise.

Usage

It can take as input either a result item from a JSON API response or the URL of an item:

from locr import Fetcher

# From item or resource URL
Fetcher.full_text_from_url('https://www.loc.gov/resource/mss85943.001811/')

# From search result
# See https://libraryofcongress.github.io/data-exploration/requests.html
url = 'https://www.loc.gov/search/?fo=json&fa=subject:cats'
response = requests.get(url)
Fetcher(response['results'][0]).full_text()

Note that the above example is not guaranteed to work. In particular, not all objects have online text available.

Fetcher may raise the following exceptions:

  • ObjectNotOnline: when the object does not have any online formats.
  • AmbiguousText: when multiple fulltext options are found.
  • UnknownFormat: when locr is not sure how to handle the fulltext link's filetype.

If you encounter these exceptions, kindly file an issue or open a PR about the newly discovered edge case. Thanks.

Why LOCR?

The Library of Congress has put OCRed full text online for many of its items. However:

  • the API does not in general return the URLs to these items
  • OCRed text exists on different servers, with different URL formats; there is not one single way to construct the relevant URL for an item

While full text is easy to retrieve via the web site for a single item, perhaps you, like me, would like to fetch it programmatically.

Development

This package has a humiliating lack of tests, and I have done nothing to verify appropriate versions for dependencies. It really can use your help. PRs welcome.

Project details


Download files

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

Source Distribution

locr-0.4.4.tar.gz (4.7 kB view hashes)

Uploaded Source

Built Distribution

locr-0.4.4-py2.py3-none-any.whl (5.3 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page