scholarly
Simple access to Google Scholar authors and citations
What it is and what it does
scholarly is a Python scraper that queries Google Scholar to retrieve author profiles, publication records, and citation metadata in a programmatic, dictionary-based format. It handles the mechanics of web requests, HTML parsing, and result iteration so you can focus on the academic data rather than HTTP details.
The package wraps requests, httpx, beautifulsoup4, and bibtexparser to extract structured fields like author names, publication titles, citation counts, and venue information. It includes proxy support via free-proxy and fake-useragent to work around Google Scholar's rate-limiting and IP blocking, though the documentation warns that certain query types (like citedby and search_pubs) will trigger blocking without proxies. Tor support exists but is deprecated and unsupported.
Use it for:
- Build a researcher profile aggregator that collects publication lists and citation metrics from Google Scholar for a list of author names.
- Extract bibliographic data from Scholar search results to populate a local academic database or bibliography tool.
- Track citation counts and related papers for a specific publication to monitor its academic impact over time.
- Automate literature review workflows by scraping Scholar results for papers matching a research topic.
- Generate citation networks by querying who has cited a particular paper and extracting their metadata.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
scholarly retrieves author profiles, publication metadata, and citation information from Google Scholar without requiring CAPTCHA solving, using web scraping with proxy support.
Yes, if you need programmatic access to Google Scholar data and can manage proxy configuration. The package is actively developed, has no known vulnerabilities, and carries a permissive license. However, expect to invest time in proxy setup (required for heavy queries) and be aware that the last PyPI release is from early 2023, so test compatibility with your use case before relying on it in production.
Install
scholarly on PyPI
pip
pip install scholarlyuv
uv add scholarlypoetry
poetry add scholarlyInstalling scholarly
Before you install
Low friction installation with a pure-Python wheel and 12 runtime dependencies. The package is actively maintained with a recent commit on 2026-03-24, though the latest release on PyPI dates to 2023-01-16, creating a gap between development activity and published versions.
License in practice
Released under the Unlicense, a permissive public-domain-equivalent license that places no restrictions on use, modification, or redistribution—suitable for any project type.
Quickstart
pip install scholarly
from scholarly import scholarly
search_query = scholarly.search_author('Steven A Cholewiak')
first_author = next(search_query)
author = scholarly.fill(first_author)
print(author['publications'])
Google Scholar actively blocks scrapers; queries like citedby() and search_pubs() will trigger IP blocking unless you configure a proxy via ProxyGenerator before making requests.
Verify before relying
- Whether the 1306-day gap since the 2023-01-16 release indicates maintenance slowdown or stable API compatibility.
- Current reliability of free-proxy and fake-useragent dependencies for evading Google Scholar's anti-bot measures.
- Whether Tor support (deprecated since v1.5) is still functional or should be avoided.
Package facts
| License | Unlicense (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 12 — arrow, beautifulsoup4, bibtexparser, deprecated, fake-useragent, free-proxy, httpx, python-dotenv, requests, selenium, sphinx-rtd-theme, typing-extensions |
| Maintenance | actively maintained — 1,306 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 363,971/month — #7,213 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: scholarly-1.7.11-py3-none-any.whl
Keywords: Google Scholar, academics, citations
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
semanticscholarProvides a typed Python client for querying…
permissive · top 15,000 on PyPI
pyalexPyAlex is a Python interface to the OpenAlex…
permissive · top 15,000 on PyPI
habanerohabanero is a low-level Python client for the…
permissive · top 15,000 on PyPI
pyzoteroPyzotero is a Python client library for the…
unclear · top 15,000 on PyPI
trafilaturaTrafilatura extracts main text, metadata, and…
permissive · top 5,000 on PyPI
google-search-resultsA Python client for querying search results…
permissive · top 5,000 on PyPI
eyeciteExtracts legal citations from text, recognizing…
permissive · top 15,000 on PyPI
pybtex-docutilsIntegrates BibTeX citations into…
permissive · top 5,000 on PyPI
googlesearch-pythonScrapes Google search results by sending HTTP…
permissive · top 5,000 on PyPI
oxylabsOfficial Python client for Oxylabs web scraping…
permissive · top 15,000 on PyPI