Automated citation intelligence for Google Scholar profiles — author profiles, rankings, and interactive world map.
Project description
CiteRadar
Automated citation intelligence for Google Scholar profiles. Give CiteRadar a Scholar user ID and receive a complete citation analysis: full author profiles, two ranked lists, a statistics summary, and an interactive world map — all in one command.
Quick Start
pip install citeradar
citeradar i1H5XQ8AAAAJ
A folder named after the researcher is created in the current directory:
Chenxu_Niu/
├── summary.txt # statistics overview
├── papers.csv # researcher's own papers + citation counts
├── citing_papers.csv # every paper that cited them, with author info
├── ranked_by_citations.csv # who cited you most
├── ranked_by_citations.json
├── ranked_by_hindex.csv # most influential researchers who cited you
├── ranked_by_hindex.json
└── citation_map.html # interactive world map — open in any browser
Installation
From PyPI (recommended)
pip install citeradar
From source
git clone https://github.com/YOUR_USERNAME/citeradar.git
cd citeradar
pip install -e .
Dependencies
| Package | Purpose |
|---|---|
requests |
HTTP client for Scholar, OpenAlex, CrossRef, Semantic Scholar |
beautifulsoup4 + lxml |
HTML parsing for Scholar pages |
folium |
Interactive Leaflet.js maps |
geopy |
Nominatim geocoding (city → lat/lng) |
Usage
citeradar <SCHOLAR_USER_ID> [options]
Options
| Flag | Description |
|---|---|
--no-enrich |
Skip CrossRef author enrichment (faster) |
--no-hindex |
Skip OpenAlex h-index look-up (much faster) |
--outdir DIR |
Parent directory for the output folder (default: .) |
Examples
# Full pipeline (all five stages)
citeradar i1H5XQ8AAAAJ
# Fast mode — citation ranking only, no h-index look-ups
citeradar i1H5XQ8AAAAJ --no-hindex
# Write output to a specific directory
citeradar i1H5XQ8AAAAJ --outdir ~/research/citations
You can also run CiteRadar as a module:
python -m citeradar i1H5XQ8AAAAJ
Pipeline Stages
Stage 1 — scraper
Google Scholar profile page
→ papers.csv / papers.json
Stage 2 — tracker
Scholar "Cited by" pages for each paper
+ CrossRef (author list enrichment)
→ citing_papers.csv / citations.json
Stage 3 — profiler
OpenAlex (primary: institution, city, country, author ID)
Semantic Scholar (fallback)
CrossRef (fallback)
→ authors.csv / authors.json
Stage 4 — ranker
Citation-count ranking (groups by author, counts unique citing papers)
h-index ranking (OpenAlex with affiliation cross-validation)
→ ranked_by_citations.*
→ ranked_by_hindex.*
Stage 5 — reporter
Statistics summary
Nominatim geocoding (city → lat/lng, cached, 1 req/s)
Folium interactive map (heat layer + circle markers)
→ summary.txt
→ citation_map.html
Author Disambiguation
Bibliometric databases sometimes merge different researchers who share the same name into a single entity, leading to wildly inflated h-index values. CiteRadar applies a two-stage verification before accepting any h-index:
-
Direct ID lookup + affiliation cross-validation The OpenAlex author ID (captured during Stage 3) is used for a direct entity fetch. The affiliation history of the retrieved entity is then compared to the institution we independently recorded, using stop-word-filtered word overlap (threshold ≥ 0.6). Stop words such as university, of, the, institute are removed before comparison, so that "Texas Tech University" and "University of Texas" are correctly treated as different institutions (overlap = 0.5, below threshold).
-
Name-search fallback with double-check If no ID is available, the top-5 name-search candidates are evaluated. Both name similarity (≥ 0.7) and institution similarity (≥ 0.4) must be satisfied before the best candidate is accepted, followed by the same affiliation cross-validation.
If the institution field is unknown, only h-index values ≤ 20 are accepted to guard against common-name mis-attribution.
Rate Limits and Anti-Ban Measures
| Source | Strategy |
|---|---|
| Google Scholar | Realistic browser User-Agent; 2 s between requests; 30 s back-off on HTTP 429 |
| OpenAlex | mailto= polite-pool parameter; 1 s between requests; 20 s back-off on 429 |
| CrossRef | User-Agent with contact e-mail; used only for truncated author lists |
| Nominatim | 1.1 s between requests (Nominatim usage policy: ≤ 1 req/s) |
Output File Reference
papers.csv
| Field | Description |
|---|---|
title |
Paper title |
authors |
Author list as displayed on Scholar |
venue |
Journal or conference |
year |
Publication year |
citations |
Citation count shown on Scholar |
paper_url |
Link to Scholar detail page |
citing_papers.csv
| Field | Description |
|---|---|
cited_paper_title |
Which of your papers was cited |
title |
Title of the citing paper |
authors |
Author list (CrossRef-enriched when available) |
authors_complete |
True if author list is confirmed complete |
venue |
Journal or conference |
year |
Year |
citing_url |
Scholar link |
ranked_by_citations.csv
| Field | Description |
|---|---|
rank |
Rank by number of citations |
full_name |
Author name |
institution / city / country |
Affiliation metadata |
times_cited_you |
Number of their papers that cite you |
your_papers_cited |
Which of your papers they cited |
openalex_author_id |
OpenAlex entity URL |
ranked_by_hindex.csv
All fields from ranked_by_citations.csv plus:
| Field | Description |
|---|---|
h_index |
Verified h-index from OpenAlex |
total_papers |
Total works count on OpenAlex |
total_citations |
Total citation count on OpenAlex |
openalex_id |
id_mismatch or name_mismatch if disambiguation failed |
License
MIT License — see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file citeradar-1.0.0.tar.gz.
File metadata
- Download URL: citeradar-1.0.0.tar.gz
- Upload date:
- Size: 26.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dcef93cdeb17014e3434f59b2f5779e34874f4a5e2b8ff472b436c7f943c3701
|
|
| MD5 |
8e3f4cba28b841c7d3f41acd2aba8d31
|
|
| BLAKE2b-256 |
1746f6d3d5729662601f286f65570cc04ab6a98be0caf521de014cd5c281f521
|
File details
Details for the file citeradar-1.0.0-py3-none-any.whl.
File metadata
- Download URL: citeradar-1.0.0-py3-none-any.whl
- Upload date:
- Size: 29.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2717838ede452e79058d426d7465c57dd5ab3e2dd1b7fdba273b96b4dde94020
|
|
| MD5 |
938da1ec51150780f4d44c0ad797daa7
|
|
| BLAKE2b-256 |
560fa2ec5669a9dae0f14d83000acc4cd84ea2192d2f0cf94eadcd3be0d31ccb
|