Google Scholar API 技能
概述
本技能提供通过 SerpAPI 访问 Google Scholar 的功能,实现学术论文的智能检索和下载。包含完整的 Python 脚本、配置示例和使用指南。
快速开始
1. 安装依赖
CODEBLOCK0
2. 设置 API 密钥
CODEBLOCK1
3. 基本搜索示例
CODEBLOCK2
核心功能
1. 论文搜索(基于 SerpAPI)
- - 基本搜索: 关键词、短语搜索
- 高级搜索: 作者搜索 (
author:"姓名")、来源搜索 (source:"期刊") - 时间过滤: 按年份范围筛选 (
as_ylo, as_yhi) - 排序选项: 相关性、日期(仅摘要)、日期(全部内容)
- 引用搜索: 搜索引用特定文章的文献 (
cites 参数) - 版本搜索: 搜索文章的所有版本 (
cluster 参数)
2. 结果解析
- - 完整元数据: 标题、作者、年份、期刊、摘要
- 引用信息: 引用次数、引用ID、集群ID
- 作者详情: 作者姓名、Google Scholar链接、作者ID
- 资源链接: PDF、HTML、相关页面、引用链接
- 搜索统计: 总结果数、处理时间、搜索状态
3. PDF 下载
- - 智能检测: 自动识别可用的PDF链接
- 批量下载: 支持批量下载多个论文
- 文件命名: 按"年份_标题"格式自动命名
- 下载跟踪: 记录下载状态和路径
- 错误处理: 网络超时、链接失效等异常处理
4. 高级功能
- - 作者专搜: 专门搜索某位作者的所有论文
- 引用分析: 分析某篇文章的引用网络
- 版本追踪: 查找文章的所有版本
- 多语言: 支持多种语言搜索 (
hl 参数) - 综述筛选: 仅显示综述文章 (
as_rr 参数)
工作流程
步骤 1: 准备环境
- 1. 获取 SerpAPI 密钥(免费注册)
- 安装 Python 依赖
- 设置环境变量或直接传递密钥
步骤 2: 执行搜索
CODEBLOCK3
步骤 3: 处理结果
CODEBLOCK4
步骤 4: 下载文件
CODEBLOCK5
使用示例
示例 1: 简单文献调研
CODEBLOCK6
示例 2: 下载特定年份的论文
CODEBLOCK7
示例 3: 命令行使用
CODEBLOCK8
SerpAPI 配置
API 密钥和计划
- - 免费计划: 每月 250 次搜索,50次/小时吞吐量
- Starter: $25/月,1000次搜索,200次/小时
- Developer: $75/月,5000次搜索,1000次/小时
- Production: $150/月,15000次搜索,3000次/小时
- Big Data: $275/月,30000次搜索,6000次/小时
重要限制
- - 每页结果: 1-20 条(
num 参数) - 分页: 通过
start 参数(0, 10, 20...) - 缓存: 默认启用,1小时有效期
- 异步模式: 支持异步请求 (
async 参数) - 输出格式: JSON(默认)或原始HTML
搜索参数详解
- -
q: 搜索查询(支持 author:, source: 语法) - INLINECODE14 : 每页结果数(1-20,默认10)
- INLINECODE15 : 分页起始位置(0, 10, 20...)
- INLINECODE16 /
as_yhi: 年份范围过滤 - INLINECODE18 : 排序方式(0=相关性, 1=日期仅摘要, 2=日期全部)
- INLINECODE19 : 语言代码(en, zh-CN, ja 等)
- INLINECODE20 : 是否包含引用(0=包含, 1=排除)
- INLINECODE21 : 是否仅显示综述文章(0=全部, 1=仅综述)
- INLINECODE22 : 搜索引用特定文章的文献
- INLINECODE23 : 搜索文章的所有版本
下载设置
- -
download_dir: 下载目录(默认 "./downloads") - 自动创建目录
- 文件按论文标题命名
错误处理
常见问题
- 1. API 密钥错误: 检查密钥是否正确设置
- 额度不足: 免费计划每月 100 次搜索
- 网络问题: 检查网络连接和代理设置
- PDF 不可用: 并非所有论文都有公开 PDF
调试建议
CODEBLOCK9
最佳实践
搜索优化
- 1. 使用具体、相关的关键词
- 添加引号进行精确匹配
- 合理设置结果数量避免超限
- 使用年份过滤获取最新研究
资源管理
- 1. 缓存常用搜索结果
- 分批处理大量请求
- 定期清理下载目录
- 备份重要论文
合规使用
- 1. 仅用于个人学术研究
- 尊重版权和访问条款
- 不要大规模批量下载
- 遵守目标网站的 robots.txt
资源文件
scripts/ 目录
包含可执行的 Python 脚本:
- 1. googlescholarsearch.py - 核心搜索和下载脚本
- 主要功能类
GoogleScholarSearch
- 支持搜索、解析、下载完整流程
- 命令行接口
- 2. config_example.py - 配置和使用示例
- 基础搜索示例
- PDF 下载示例
- 高级搜索示例
- 3. requirements.txt - 依赖包列表
-
google-search-results: SerpAPI Python 客户端
-
requests: HTTP 请求库
references/ 目录
包含详细参考文档:
- 1. api_guide.md - API 使用指南
- SerpAPI 密钥获取
- 搜索参数详解
- 结果字段说明
- 错误处理和最佳实践
文件结构
CODEBLOCK10
使用提示
在 OpenClaw 中使用
当用户请求搜索学术论文时:
- 1. 检查是否设置了
SERP_API_KEY 环境变量 - 使用
scripts/google_scholar_search.py 执行搜索 - 根据需要下载 PDF 文件
- 提供格式化的搜索结果
常见用户请求模式
- - "帮我搜索关于机器学习的论文"
- "下载最近3年关于深度学习的PDF"
- "查找引用次数超过1000的经典论文"
- "批量下载某个研究主题的相关文献"
响应格式建议
CODEBLOCK11
注意事项
限制和约束
- 1. API 限制: SerpAPI 免费计划每月 100 次搜索
- PDF 可用性: 并非所有论文都有公开 PDF
- 下载速度: 受网络和服务器响应影响
- 版权遵守: 仅用于个人学术研究
扩展建议
如需更多功能,可考虑:
- 1. 集成其他学术数据库(arXiv、PubMed 等)
- 添加引用管理功能(BibTeX 导出)
- 实现论文推荐系统
- 添加文献综述自动生成
技能维护: 定期检查 SerpAPI 的 API 变化,更新脚本以保持兼容性。
Google Scholar API 技能
概述
本技能提供通过 SerpAPI 访问 Google Scholar 的功能,实现学术论文的智能检索和下载。包含完整的 Python 脚本、配置示例和使用指南。
快速开始
1. 安装依赖
bash
pip install google-search-results requests
2. 设置 API 密钥
bash
export SERP
APIKEY=your
serpapikey_here
3. 基本搜索示例
python
from scripts.google
scholarsearch import GoogleScholarSearch
初始化客户端
client = GoogleScholarSearch()
搜索论文
results = client.search(machine learning, num_results=5)
papers = client.parse_results(results)
for paper in papers:
print(f标题: {paper[title]})
print(f作者: {paper[authors]})
print(f年份: {paper[year]})
if pdf_link in paper:
print(fPDF 可用: {paper[pdf_link]})
核心功能
1. 论文搜索(基于 SerpAPI)
- - 基本搜索: 关键词、短语搜索
- 高级搜索: 作者搜索 (author:姓名)、来源搜索 (source:期刊)
- 时间过滤: 按年份范围筛选 (asylo, asyhi)
- 排序选项: 相关性、日期(仅摘要)、日期(全部内容)
- 引用搜索: 搜索引用特定文章的文献 (cites 参数)
- 版本搜索: 搜索文章的所有版本 (cluster 参数)
2. 结果解析
- - 完整元数据: 标题、作者、年份、期刊、摘要
- 引用信息: 引用次数、引用ID、集群ID
- 作者详情: 作者姓名、Google Scholar链接、作者ID
- 资源链接: PDF、HTML、相关页面、引用链接
- 搜索统计: 总结果数、处理时间、搜索状态
3. PDF 下载
- - 智能检测: 自动识别可用的PDF链接
- 批量下载: 支持批量下载多个论文
- 文件命名: 按年份_标题格式自动命名
- 下载跟踪: 记录下载状态和路径
- 错误处理: 网络超时、链接失效等异常处理
4. 高级功能
- - 作者专搜: 专门搜索某位作者的所有论文
- 引用分析: 分析某篇文章的引用网络
- 版本追踪: 查找文章的所有版本
- 多语言: 支持多种语言搜索 (hl 参数)
- 综述筛选: 仅显示综述文章 (as_rr 参数)
工作流程
步骤 1: 准备环境
- 1. 获取 SerpAPI 密钥(免费注册)
- 安装 Python 依赖
- 设置环境变量或直接传递密钥
步骤 2: 执行搜索
python
基础搜索
client.search(deep learning, num_results=10)
高级搜索(带过滤)
client.search(
query=transformer,
year_from=2020,
year_to=2024,
sort_by=date
)
步骤 3: 处理结果
python
解析结果
papers = client.parse
results(searchdata)
检查 PDF 可用性
for paper in papers:
if pdf_link in paper:
print(f可下载: {paper[title]})
步骤 4: 下载文件
python
单个文件下载
client.download
pdf(pdfurl, paper.pdf)
批量搜索和下载
result = client.search
anddownload(
query=reinforcement learning,
download_dir=./papers,
max_papers=5
)
使用示例
示例 1: 简单文献调研
python
搜索某个主题的最新论文
client = GoogleScholarSearch()
results = client.search(quantum machine learning, num
results=15, sortby=date)
papers = client.parse_results(results)
print(f找到 {len(papers)} 篇相关论文)
for i, paper in enumerate(papers[:5]):
print(f{i+1}. {paper[title]} ({paper[year]}) - {paper[cited_by]} 次引用)
示例 2: 下载特定年份的论文
python
下载 2020-2023 年的论文
result = client.search
anddownload(
query=computer vision,
download
dir=./cvpapers,
max_papers=10,
year_from=2020,
year_to=2023
)
print(f成功下载 {result[successful_downloads]} 篇论文)
示例 3: 命令行使用
bash
直接运行脚本
python scripts/google
scholarsearch.py artificial intelligence --num 10 --output ./ai_papers
SerpAPI 配置
API 密钥和计划
- - 免费计划: 每月 250 次搜索,50次/小时吞吐量
- Starter: $25/月,1000次搜索,200次/小时
- Developer: $75/月,5000次搜索,1000次/小时
- Production: $150/月,15000次搜索,3000次/小时
- Big Data: $275/月,30000次搜索,6000次/小时
重要限制
- - 每页结果: 1-20 条(num 参数)
- 分页: 通过 start 参数(0, 10, 20...)
- 缓存: 默认启用,1小时有效期
- 异步模式: 支持异步请求 (async 参数)
- 输出格式: JSON(默认)或原始HTML
搜索参数详解
- - q: 搜索查询(支持 author:, source: 语法)
- num: 每页结果数(1-20,默认10)
- start: 分页起始位置(0, 10, 20...)
- asylo/asyhi: 年份范围过滤
- scisbd: 排序方式(0=相关性, 1=日期仅摘要, 2=日期全部)
- hl: 语言代码(en, zh-CN, ja 等)
- asvis: 是否包含引用(0=包含, 1=排除)
- asrr: 是否仅显示综述文章(0=全部, 1=仅综述)
- cites: 搜索引用特定文章的文献
- cluster: 搜索文章的所有版本
下载设置
- - download_dir: 下载目录(默认 ./downloads)
- 自动创建目录
- 文件按论文标题命名
错误处理
常见问题
- 1. API 密钥错误: 检查密钥是否正确设置
- 额度不足: 免费计划每月 100 次搜索
- 网络问题: 检查网络连接和代理设置
- PDF 不可用: 并非所有论文都有公开 PDF
调试建议
python
import logging
logging.basicConfig(level=logging.DEBUG)
try:
results = client.search(test query)
except Exception as e:
print(f错误详情: {e})
# 检查环境变量
print(fAPI Key: {os.getenv(SERPAPIKEY)})
最佳实践
搜索优化
- 1. 使用具体、相关的关键词
- 添加引号进行精确匹配
- 合理设置结果数量避免超限
- 使用年份过滤获取最新研究
资源管理
- 1. 缓存常用搜索结果
- 分批处理大量请求
- 定期清理下载目录
- 备份重要论文
合规使用
- 1. 仅用于个人学术研究
- 尊重版权和访问条款
- 不要大规模批量下载
- 遵守目标网站的 robots.txt
资源文件
scripts/ 目录
包含可执行的 Python 脚本:
- 1. googlescholarsearch.py - 核心搜索和下载脚本
- 主要功能类 GoogleScholarSearch
- 支持搜索、解析、下载完整流程
- 命令行接口
- 2. config_example.py - 配置和使用示例
- 基础搜索示例
- PDF 下载示例
- 高级搜索示例
- 3. requirements.txt - 依赖包列表
- google-search-results: SerpAPI Python 客户端
- requests: HTTP 请求库
references/ 目录
包含详细参考文档:
- 1. api_guide.md - API 使用指南
- SerpAPI 密钥获取
- 搜索参数详解
- 结果字段说明
- 错误处理和最佳实践
文件结构
google-scholar-api/
├── SK