A Chrome browser extension for extracting scholar information from Google Scholar and saving to the cloud.
- ✅ One-Click Extraction: Extract standardized scholar information from Google Scholar researcher pages
- ✅ Extracted Fields: Name, affiliation, citations, canonical URL, homepage, research topics
- ✅ Custom Tags: Support for adding custom tags (comma-separated input, automatically converted to pipe-separated output)
- ✅ Memo Function: Support for adding memo information with automatic CSV escaping (supports commas, quotes, and other special characters)
- ✅ Save to Cloud: Save extracted scholar information to personal account
- ✅ Duplicate Detection: Automatically detect if scholar already exists, support updating existing records
- ✅ Data Sync: Complete data synchronization with the web platform
- ✅ Unified Authentication: Uses the same Supabase authentication system as the website
- ✅ Auto Sync: Extension automatically syncs login status after logging in on the website
- ✅ Status Sync: Login on either extension or website automatically syncs to the other
- ✅ No Login Required for Basic Use: Extract and copy functions work without login, only cloud saving requires authentication
- ✅ Context Menu: Right-click on Google Scholar pages and select "Copy Scholar Info"
- ✅ Popup Interface: Click extension icon for visual interface
- ✅ Status Feedback: Elegant error handling and status notifications
- Open Chrome browser and navigate to
chrome://extensions/ - Enable "Developer mode" in the top right corner
- Click "Load unpacked"
- Select the
extension/directory - Extension installed successfully!
- Open any Google Scholar researcher page (URL format:
https://scholar.google.com/citations?user=...) - Right-click anywhere on the page
- Select "Copy Scholar Info"
- Information is copied to clipboard
- Open any Google Scholar researcher page
- Click the extension icon in the browser toolbar
- Click the circular "log this" button to extract information
- View and edit extracted information in the popup window:
- View all automatically extracted fields
- Add Tags: Enter tags in the "Tags" input field, separated by commas (e.g.,
tag1, tag2, tag3) - Add Memo: Enter memo in the "Memo" text area, supports multi-line and special characters
- View complete CSV format output in the "Full Output" area
- Click "Copy" button to copy complete information to clipboard
- (Optional) Click "Save it" button to save to cloud account
First time using cloud features:
- Click "Save it" button and you'll be prompted to log in
- Click "log in" link to open login window
- Enter email and password to log in
- After login, you can save data to the cloud
Or login through website:
- After logging in on the website
- Extension automatically syncs login status
- No need to log in again in the extension
复制的信息格式为逗号分隔的单行 CSV:
姓名,机构,引用数,Canonical URL,主页,研究主题,标签(管道分隔),备注
示例:
John Doe,Stanford University,1234,https://scholar.google.com/...,https://johndoe.com,Machine Learning|AI,tag1|tag2,"Memo with ""quotes"", commas"
- 复制
config.local.example.js为config.local.js - 填写实际配置信息:
const CONFIG_LOCAL = {
// Supabase 配置(从 Supabase Dashboard > Project Settings > API 获取)
SUPABASE_URL: 'https://xxxxx.supabase.co',
SUPABASE_ANON_KEY: 'eyJhbGci...',
// API 配置(不包含 /api/v1,由 api.js 添加)
API_URL: 'http://localhost:8000', // 开发环境
// 官网配置
WEB_URL: 'http://localhost:3000', // 开发环境
};注意:config.local.js 已在 .gitignore 中,不会被提交到 Git。
- manifest.json - 插件配置和权限声明
- popup.html/js/css - 插件主界面(弹出窗口)
- content.js - 内容脚本(注入到 Google Scholar 页面)
- background.js - 后台服务工作者(处理右键菜单等)
- auth-listener.js - 认证监听脚本(在官网页面运行)
- lib/supabase.js - Supabase 认证封装
- lib/api.js - 后端 API 调用封装
┌─────────────────────────────────────────────────────────┐
│ 数据交互架构 │
├─────────────────────────────────────────────────────────┤
│ │
│ 1. 信息提取 │
│ Google Scholar 页面 → content.js → popup.js │
│ │
│ 2. 认证同步 │
│ 官网页面 → auth-listener.js → chrome.storage.local │
│ 插件打开 → popup.js → syncAuthFromWebsite() │
│ │
│ 3. 云端保存 │
│ popup.js → lib/api.js → Backend API │
│ (Bearer Token 认证) │
│ │
└─────────────────────────────────────────────────────────┘
登录状态同步:
-
官网 → 插件:
- 官网登录后,
auth-listener.js自动检测 localStorage 中的 session - 通过
postMessage或直接读取 localStorage 同步到chrome.storage.local - 插件打开时自动同步状态
- 官网登录后,
-
插件 → 官网:
- 插件内登录使用 Supabase REST API
- Session 存储在
chrome.storage.local - 官网通过
auth-listener.js定期检查并同步
-
双向同步:
- 插件打开时尝试从官网 tab 同步
- 官网页面监听 session 变化并通知插件
- 任意一端登录,另一端自动同步
插件通过以下端点与后端交互:
GET /api/v1/scholars/check?canonical=...- 检查学者是否存在POST /api/v1/scholars- 创建学者记录PUT /api/v1/scholars/:id- 更新学者记录GET /api/v1/scholars- 获取学者列表(未在插件中使用)GET /api/v1/scholars/:id- 获取学者详情(未在插件中使用)DELETE /api/v1/scholars/:id- 删除学者(未在插件中使用)
所有 API 调用都需要 Bearer Token 认证(从 Supabase session 获取)。
- 确保在 Google Scholar 研究者页面(URL 包含
/citations?user=) - 刷新页面后重试
- 检查浏览器控制台是否有错误信息
- 点击 "log in" 链接登录
- 或在官网登录后再回到插件
- 确保 Supabase 配置正确
- 确保
WEB_URL配置正确 - 刷新插件 popup
- 检查浏览器控制台的错误信息
- 确保后端服务运行在
http://localhost:8000 - 确保前端服务运行在
http://localhost:3000 - 配置
config.local.js中的 URL - 在 Chrome 中加载插件(开发者模式)
- 右键点击插件图标 → "检查弹出窗口" → 查看控制台
- 在 Google Scholar 页面按 F12 → 查看 content script 日志
- 在
chrome://extensions/→ 插件详情 → "检查视图 service worker" → 查看 background script 日志
本项目为私有项目。