Install
openclaw skills install letpub-skillsLetPub 期刊数据爬取 - 查询期刊详情、分析评论、推荐期刊
openclaw skills install letpub-skillsLetPub 期刊数据爬取工具,提供三大核心能力:
流程:期刊名称 → 自动补全搜索拿到 journal_id → 请求详情页 → 解析返回。
from letpub_skills.scripts.search_journal import search_journal
from letpub_skills.scripts.get_details import parse_journal_detail
import requests
# 第1步:搜索拿到 journal_id
results = search_journal("CHEMICAL ENGINEERING SCIENCE")
journal_id = results[0]['id'] # 例如 "1642"
# 第2步:请求详情页并解析
url = f"https://letpub.com.cn/index.php?journalid={journal_id}&page=journalapp&view=detail"
response = requests.get(url)
journal = parse_journal_detail(response.text)
print(journal['impact_factor']) # 影响因子
print(journal['ch_sci_2025']['分区']) # 中科院分区
print(journal['speed']) # 审稿速度
print(journal['similar_journals']) # 同类著名期刊
字段详解见
references/get_journal_detail.md
流程:期刊名称 → (复用功能1拿到的 journal_id,否则重新搜索)→ 遍历至少 3 页评论(每页约 10 楼,可根据实际评论数量动态增减)→ 综合分析。
from letpub_skills.scripts.search_journal import search_journal
from letpub_skills.scripts.get_comments import get_journal_comments, parse_comments_response
# 如果已通过功能1拿到 journal_id,直接复用;否则:
results = search_journal("CHEMICAL ENGINEERING SCIENCE")
journal_id = results[0]['id']
# 遍历至少3页评论(每页约10楼,可根据实际需要增减页数)
all_comments = []
for page in range(1, 4): # 默认3页起,按需扩展
response = get_journal_comments(journal_id=journal_id, page=page)
comments = parse_comments_response(response)
if not comments:
break
all_comments.extend(comments)
print(f"共获取 {len(all_comments)} 条评论")
# 然后由 AI 对 all_comments 进行综合分析(审稿速度、录用难度、用户口碑、常见反馈等)
获取评论需登录。在 letpub_skills/assets/cookies.json 填入浏览器 cookies:
{ "cookies": "PHPSESSID=xxx; ..." }
floor、author、score(0-10)、research_fields、experience(投稿经验)、replies(回复数组)、good_count、bad_count 等。
详见
references/get_journal_comments.md
用户在 experience 中常使用以下缩写描述投稿流程,分析时需理解其含义:
| 缩写 | 全称 | 中文释义 | 数字解读 |
|---|---|---|---|
| STJ | Submit to Journal | 提交至期刊 | 刚投递,待初审 |
| WE | With Editor | 编辑处理中 | 编辑分配稿件、筛选审稿人 |
| UR | Under Review | 外审审稿中 | X-Y-Z:邀约数-接受数-返稿数 |
| RRC | Required Reviews Completed | 审稿意见收齐 | 已集齐评审意见,等待编辑终审 |
你是期刊投稿顾问。基于以下 N 条用户投稿评论,请综合分析:
- 审稿速度:从
experience中提取投稿到接收的时间跨度,给出平均/范围。- 录用难度:统计
score分布,提取拒稿/小修/大修比例。- 用户口碑:高频正/负面关键词。
- 常见问题:编辑响应、审稿人专业度、流程透明度等。
- 投稿建议:给出"推荐 / 谨慎 / 不推荐"的明确结论。
流程:用户提供论文摘要和需求 → 由 AI 分析摘要主题 → AI 阅读 references/search_journal.md 中的 CATEGORY_CN / SUBCATEGORY_CN → AI 选择合适学科分类和筛选条件 → 调用 search_journals_advanced → 解析返回。
| 参数 | 说明 | 可选值 |
|---|---|---|
searchcategory1 | 大类学科(中文) | 21个,见 references/search_journal.md |
searchcategory2 | 小类学科(中文) | 见 references/search_journal.md |
searchscitype | SCI 收录类型 | SCIE, SSCI, ESCI, AHCI, SCOPUS, DOAJ |
searchjcrkind | 新锐期刊分区 | 1, 2, 3, 4 |
searchopenaccess | 是否 OA | YES, Hybrid, NO |
searchimpactlow | 影响因子下限 | 数字字符串 |
searchimpacthigh | 影响因子上限 | 数字字符串 |
searchsort | 排序方式 | relevance, impactor, rankscore, jciscore, clickcount |
from letpub_skills.scripts.search_journal import search_journals_advanced, parse_search_results
# AI 根据摘要分析后填入参数
html = search_journals_advanced(
searchcategory1="计算机科学",
searchcategory2="计算机:人工智能",
searchimpactlow="5",
searchscitype="SCIE",
searchsort="impactor"
)
result = parse_search_results(html)
print(f"共 {result['total_records']} 条记录")
for j in result['journals']:
print(f"{j['name']} - IF:{j['impact_factor']} - {j['partition']}")
你是期刊推荐助手。请按以下步骤处理用户的论文摘要:
1. 分析摘要主题 阅读用户提供的摘要,识别:
- 主要研究领域(如 deep learning、cancer treatment、catalysis 等)
- 研究方法(实验/理论/计算/综述)
- 应用方向(医学/工程/基础科学)
2. 查阅学科分类 阅读
references/search_journal.md中的CATEGORY_CN(21个大类)和SUBCATEGORY_CN(每个大类下的小类),从中选出最匹配的 1-3 个组合:
- 主分类:最贴合的
searchcategory1- 子分类:进一步精确定位的
searchcategory23. 综合用户需求决定筛选条件 根据用户的额外要求(如"想投高影响因子"、"必须 OA"、"中科院 1 区"等),合理设置:
searchimpactlow/searchimpacthigh:影响因子范围searchscitype:SCI 收录类型searchopenaccess:是否 OAsearchjcrkind:分区要求searchsort:排序方式(默认按影响因子降序impactor)4. 调用
search_journals_advanced并解析结果 必要时尝试不同的分类组合,提供 5-10 个候选期刊,附上选择理由(学科匹配度、IF、分区、审稿速度等)。5. 候选期刊质量审核(必做,基于功能 2 的评论数据) 对每个候选期刊调用功能 2 抓取评论,按以下硬性门槛筛掉不合格期刊,只把通过审核的期刊推荐给用户:
- 评论数量 ≥ 10 条(指顶层独立评论 /
floor计数 ≥ 10,不包含replies中的层级回复;不足 10 条则继续翻页直至满足或无新数据)- 综合评分 ≥ 7.0 / 10(所有评论
score的算术平均值)- 「慢/拖/with editor」负面比例 < 30%(在
experience字段中命中关键词:慢、拖、太慢、迟迟、WE、with editor、卡在编辑、压稿等的评论占比)- 无学术诚信负评(任一评论命中以下关键词即整体淘汰,一票否决):
学术道德、学术不端、抄袭、剽窃、政治原因、分赃、黑幕、要求引用、强制引用去重与 Cookie 失效检测: 翻页累积评论时必须基于
floor(或author + experience哈希)去重。若反复翻页拿到的都是同一批评论(即新页评论与已有集合完全重合,或多页返回内容完全一致),说明 cookie 很可能已失效,立即停止抓取并提醒用户更新letpub_skills/assets/cookies.json中的 cookies,不要在未通过审核的情况下推荐期刊。在最终输出中,对每个推荐期刊附上审核结果摘要:评论条数、平均分、慢审比例、是否存在诚信负评。
完整学科分类数据详见
references/search_journal.md
letpub_skills/
├── SKILL.md # 操作手册(本文件)
├── assets/
│ └── cookies.json # LetPub 登录 cookies(用户填写)
├── scripts/
│ ├── search_journal.py # 期刊搜索(自动补全 + 高级搜索)
│ ├── get_details.py # 期刊详情解析
│ └── get_comments.py # 评论获取与解析
└── references/
├── search_journal.md # 搜索参数与学科分类完整数据
├── get_journal_detail.md # 详情字段说明
└── get_journal_comments.md # 评论字段说明
| 模块 | 函数 | 说明 |
|---|---|---|
search_journal | search_journal(name) | 自动补全搜索,返回 journal_id |
search_journal | search_journals_advanced(**params) | 高级多条件搜索 |
search_journal | parse_search_results(html) | 解析搜索结果 |
search_journal | CATEGORY_CN, SUBCATEGORY_CN | 学科分类数据 |
get_details | parse_journal_detail(html) | 解析期刊详情页 |
get_comments | get_journal_comments(journal_id, page) | 获取评论原始响应 |
get_comments | parse_comments_response(data) | 解析评论列表 |