Skip to main content

Download academic papers from ArXiv, Google Scholar, ACM, Springer, and GitHub

Project description

respf - Research Paper Fetcher

A Python package for downloading academic papers from ArXiv, Google Scholar, ACM, Springer, and GitHub.

Installation

pip install respf

Usage

CLI

# Download by title
respf "Attention Is All You Need"

# Download by ArXiv URL
respf https://arxiv.org/abs/2103.00020

# Specify sources
respf "BERT" --sources arxiv,google_scholar

# Download from citations file
respf --file citations.txt --dir ./papers

# Parse academic citation formats (APA, IEEE, Chicago, MLA, BibTeX)
respf --file citations.txt --parse --dir ./papers

# Get paper info
respf --info https://arxiv.org/abs/2103.00020

# For corporate networks (SSL issues)
respf "Paper Title" --use-system-certs

# Generate summary.json for PDFs in a folder
respf --summarize --dir ./papers

PDF Summarization

Generate a summary.json file with extracted text from all PDFs in a directory:

# Summarize all PDFs in a directory
respf --summarize --dir ./papers

# Output as JSON
respf --summarize --dir ./papers --json

Output (summary.json):

[
  {
    "pdf_name": "Attention_Is_All_You_Need.pdf",
    "num_pages": 11,
    "first_page_text": "...",
    "abstract_on_first_page": true
  }
]

Install with summarize support:

pip install respf[summarize]
# Also requires: sudo apt install build-essential libpoppler-cpp-dev pkg-config

Python API

from respf import ResearchPaperDownloader, download_paper, get_paper_info

# Simple usage
result = download_paper("Attention Is All You Need", download_dir="papers")

# Or use the class
downloader = ResearchPaperDownloader(download_dir="papers")
result = downloader.download_paper("https://arxiv.org/abs/2103.00020")

# Get info without downloading
info = get_paper_info("Attention Is All You Need")
print(info["title"], info["authors"])

Async API

import asyncio
from respf import ResearchPaperDownloader

async def main():
    downloader = ResearchPaperDownloader(download_dir="papers")
    result = await downloader.async_download_paper("https://arxiv.org/abs/2103.00020")
    print(result)

asyncio.run(main())

Sources

  • ArXiv - Direct download by ID or title search
  • Google Scholar - Search and find PDFs
  • ACM Digital Library - Download from ACM
  • Springer Link - Download from Springer
  • GitHub - Find PDFs in repositories

Options

Flag Description
--file, -f File with citations (one per line)
--parse Parse academic citation formats (APA, IEEE, Chicago, MLA, BibTeX)
--dir, -d Download directory (default: papers)
--sources, -s Sources to use (comma-separated)
--info, -i Get metadata without downloading
--json, -j Output as JSON
--summarize Generate summary.json for PDFs in directory
--use-system-certs Use system CA certs (corporate networks)

Troubleshooting

SSL Certificate Errors

If you get SSL errors in corporate networks, use --use-system-certs:

respf "Paper Title" --use-system-certs

This uses your system's CA certificates instead of Python's certifi bundle.

License

MIT

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

respf-1.0.1.tar.gz (20.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

respf-1.0.1-py3-none-any.whl (28.0 kB view details)

Uploaded Python 3

File details

Details for the file respf-1.0.1.tar.gz.

File metadata

  • Download URL: respf-1.0.1.tar.gz
  • Upload date:
  • Size: 20.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for respf-1.0.1.tar.gz
Algorithm Hash digest
SHA256 1240adc9b2520ba061b7770867225d4355172a252b735f1122c094efed33e9a4
MD5 6caac64deaa9849d8ad825b9a67cc32a
BLAKE2b-256 3cfc75fa041a8e2c43797e4192f7d5cc1bdba81d11aaa9f6e122c0b3c43eaa4f

See more details on using hashes here.

File details

Details for the file respf-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: respf-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 28.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for respf-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e1e9c6dfd70dbc9af5772a753a2210170df328ad9d2a057060a1ac9c5b1ad8da
MD5 582041d504af0ce76e4f3d2708a34cbb
BLAKE2b-256 e1c898e5bee6a1b96d0900a321e3e0e903e37d3e598853d7bf3cf45eb9d67c45

See more details on using hashes here.

Supported by

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