pyjstage2
Overview
J-STAGE WebAPI Wrapper for Python 3.
- J-STAGE is an electronic journal platform for science and technology information in Japan, developed and managed by the Japan Science and Technology Agency (JST).
- This package is a Python 3.12 compatible fork of pyjstage.
Acknowledgments
This project is modified based on matsurih/pyjstage (v0.0.2).
Special thanks to the original author @matsurih for creating this useful J-STAGE API wrapper.
What's Changed
| Package | Original | Forked |
|---|---|---|
| lxml | 4.4.2 | >=5.0.0 |
| requests | 2.22.0 | >=2.31.0 |
| urllib3 | 1.25.7 | >=2.0.0 |
| certifi | 2019.11.28 | >=2023.0.0 |
- Fixed absolute imports to relative imports
- Fixed private method name mangling (
__finish_setup→_finish_setup) - Added
__init__.pyexport for cleaner imports
Prerequisites
- Python >= 3.12
Installation
$ pip install pyjstage2
Note: The distribution name is
pyjstage2, but the import package remainspyjstage— kept identical to the original pyjstage so existing code works unchanged. Install withpip install pyjstage2, import withfrom pyjstage import Pyjstage.
Usage
Basic Usage
from pyjstage.pyjstage import Pyjstage
jstage = Pyjstage()
# Search by ISSN
ret_search = jstage.search(issn='2186-6619', count=3)
# List articles in a journal
ret_list = jstage.list(issn='2186-6619')
Accessing Results
for entry in ret_search.entries:
print(f"Title: {entry.title}")
print(f"Author: {entry.author.get('ja', '')}")
print(f"Journal: {entry.material_title.get('ja', '')}")
print(f"Year: {entry.pubyear}")
print(f"DOI: {entry.doi}")
print(f"Link: {entry.link}")
Search Parameters
jstage.search(
pubyearfrom=2020, # Search from year
pubyearto=2024, # Search to year
material='journal', # Journal name contains
article='title', # Article title contains
author='name', # Author name contains
keyword='AI', # Keyword contains
issn='2186-6619', # ISSN
count=10 # Number of results (max 1000)
)
Important Notes
What J-STAGE API Provides
- ✅ Literature search - Search by ISSN, keyword, author, year, etc.
- ✅ Metadata - Title, author, journal, year, DOI, page numbers
- ✅ Article links - Links to J-STAGE article pages
What J-STAGE API Does NOT Provide
- ❌ Full-text PDF download - The API does not provide direct PDF downloads
- ❌ Full-text content - The API returns metadata, not full article text
To access full-text content, use the link or doi fields to visit the publisher's website.
Changelog
v0.1.3 (2026-08-30)
- Fix:
Pyjstage.list()crashed withAttributeErrorwhenvolorderwas omitted — README's own example now works (same None-handling assearch()) - Fix: test suite is now runnable (
pyjstage.*package imports, cwd-independent resource paths); CI actually discovers and runs all 20 tests - Build: migrated to PEP 621
pyproject.toml; removedsetup.py,MANIFEST.inand requirements files; dropped unused dependencies (certifi,chardet,idna) - CI: publish workflow uses
python -m build+twine check; test workflow runs on Python 3.12 - Docs: clarified distribution name (
pyjstage2) vs import name (pyjstage)
v0.1.2 (2026-06-16)
- Fix: Null-safe XML parsing in
SearchResultandListResult— handles missing/empty XML elements without raisingAttributeError - Fix:
WARN_002(too many results) is now treated as a warning instead of raising an error, since the API still returns valid data
v0.1.1 (2026-05-18)
- First PyPI release as
pyjstage2 - Python 3.12 compatibility
- Updated dependencies (lxml >=5.0, requests >=2.31, urllib3 >=2.0)
Source Code
https://github.com/lanshi17/pyjstage
License
MIT License - see LICENSE file.
Release files for pyjstage2 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pyjstage2-0.1.3.tar.gz | 13.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyjstage2-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 25.1 kB
Release files / pyjstage2-0.1.3.tar.gz
| Download URL | pyjstage2-0.1.3.tar.gz |
|---|---|
| Size | 13.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
efad04cd0eaa687c3290e5737985fbd9a4248b196d42ff281d9e75face33c263
|
|
BLAKE2b-256 checksum How to use checksums |
eb09c999cf1a095fcc6d5780da010712db5b4c61f49b9bc8a1af30c4e1c8fc54
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Release files / pyjstage2-0.1.3-py3-none-any.whl
| Download URL | pyjstage2-0.1.3-py3-none-any.whl |
|---|---|
| Size | 11.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b55dcf6eb51636136ac8cc71f53cc9a44c5924d2b8da5f6b244fd2e7467599cd
|
|
BLAKE2b-256 checksum How to use checksums |
3adb06818c903f8c473cef3d1cb59ae667eee631c6b5196ad845a66ebc616feb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|