Skip to main content

A pythonic interface for APS publications

Project description

APS Journals

A pythonic interface for browsing APS

The apsjournals library is a collection of tools used for exploring American Physical Society publications via python.

Test Result: CircleCI

Motivation

Admittedly, the APS website is well-built. Why apsjournals then?

  1. The APS website does not offer an official API. This library offers a set of usable abstractions to help explore some of the available data.
  2. It is not possible to download an entire Issue as a single PDF in the current website. Future versions of apsjournals will offer such behavior.
  3. Why not? Interacting with APS publications via Python is fun.

Loading Articles for a Journal Issue

The apsjournals library offers several ways to load articles. The easiest of which is by picking a Journal, then specifying a volume and issue number. The library will then load the entire issue, including all articles. For example:

>>> from apsjournals import PRL
>>> PRL
Journal('Physical Review Letters')

>>> PRL.issue(121, 6)
Issue('Physical Review Letters', 121, 6)

>>> PRL.issue(121, 6).articles[:3]
[Article('Magnetic Levitation Stabilized by Streaming Fluid Flows'),
 Article('First Six Dimensional Phase Space Measurement of an Accelerator Beam'),
 Article('Ubiquitous Spin-Orbit Coupling in a Screw Dislocation with High Spin Coherency')]

Download Journal Articles

In addition to surveying which articles are in an issue, apsjournals is also capable of downloading articles, either individually or as an entire issue. In the latter case, a cover page and table of contents will also be added to the pdf (including appropriately linked bookmarks).

Authentication

The first step to downloading articles is authentication. You must be a valid APS member. this library abides by all APS Terms and Conditions, and consequently relies on you for credentials to access APS material. Authentication can be performed by using the authenticate function:

>>> import apsjournals
>>> apsjournals.authenticate('username', 'password')

This will set a session cookie required for pdf downloads.

Downloading an Article

After authenticating, it is then possible to download articles from an issue individually or as a whole. To download an individual article, use the pdf method of the Article instance. Specifically:

>>> journal = apsjournals.PRL
>>> issue = journal.issue(121, 6)
>>> article = issue.articles[3]
>>> article.pdf('path/to/file.pdf')

This will download the article as a pdf to the given location.

Download an Entire Issue

In order to download all the articles at once, simply use the pdf method of the Issue instance! For example:

>>> issue.pdf('path/to/file.pdf')

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

apsjournals-0.2.0.tar.gz (22.8 kB view details)

Uploaded Source

Built Distribution

apsjournals-0.2.0-py3-none-any.whl (25.3 kB view details)

Uploaded Python 3

File details

Details for the file apsjournals-0.2.0.tar.gz.

File metadata

  • Download URL: apsjournals-0.2.0.tar.gz
  • Upload date:
  • Size: 22.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/3.6.8

File hashes

Hashes for apsjournals-0.2.0.tar.gz
Algorithm Hash digest
SHA256 87166ea354cde2dffc9e83a5e08edbb27c0d834fa83978fe23f5fc8709117ecd
MD5 e7d5f2597467eaf940914b1bab37b802
BLAKE2b-256 48c789179fa3b0dafd3211ba4b96b98295ca811cd2a2488476dfa412d84944da

See more details on using hashes here.

File details

Details for the file apsjournals-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: apsjournals-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 25.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/3.6.8

File hashes

Hashes for apsjournals-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b080d215dfd73fd5238d70aa6226e9c3403c107027598af490f0c5445580f2d3
MD5 4cc0c07917b13a82d717739510d9645e
BLAKE2b-256 1f8f8dc7bf2589634944aef8f4907d0cabb1b7d6566cf60d3b0b773432ae5509

See more details on using hashes here.

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