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


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).


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.

Files for apsjournals, version 0.2.0
Filename, size File type Python version Upload date Hashes
Filename, size apsjournals-0.2.0-py3-none-any.whl (25.3 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size apsjournals-0.2.0.tar.gz (22.8 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 Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page