gs-navigate-pages

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Google Scholar Navigate Pages

Google Scholar页面导航

Navigate search result pages. Requires context from a previous gs-search or gs-advanced-search call.
浏览搜索结果页面。需要来自之前gs-search或gs-advanced-search调用的上下文。

Arguments

参数

$ARGUMENTS can be:
  • next
    — go to next page
  • previous
    — go to previous page
  • page N
    — go to page N
$ARGUMENTS可以是:
  • next
    — 跳转到下一页
  • previous
    — 跳转到上一页
  • page N
    — 跳转到第N页

Prerequisites

前置条件

This skill requires context from a previous search:
  • currentUrl
    : the current Google Scholar search URL
  • page
    : current page number (1-based)
此技能需要来自之前搜索的上下文:
  • currentUrl
    : 当前Google Scholar搜索URL
  • page
    : 当前页码(从1开始)

Steps

步骤

1. Calculate new URL

1. 计算新URL

Google Scholar uses
start
parameter for pagination (0-indexed, increments of 10):
  • Page 1:
    start=0
    (or omitted)
  • Page 2:
    start=10
  • Page 3:
    start=20
Based on $ARGUMENTS:
  • next
    : newStart = currentStart + 10
  • previous
    : newStart = max(0, currentStart - 10)
  • page N
    : newStart = (N - 1) * 10
Modify the
start
parameter in the current search URL. If
start
doesn't exist in the URL, append
&start={newStart}
.
Google Scholar使用
start
参数实现分页(0索引,每次增量为10):
  • 第1页:
    start=0
    (可省略)
  • 第2页:
    start=10
  • 第3页:
    start=20
根据$ARGUMENTS计算:
  • next
    : newStart = 当前start值 + 10
  • previous
    : newStart = max(0, 当前start值 - 10)
  • page N
    : newStart = (N - 1) * 10
修改当前搜索URL中的
start
参数。如果URL中不存在
start
参数,则追加
&start={newStart}

2. Navigate

2. 导航页面

Use
mcp__chrome-devtools__navigate_page
with the updated URL.
使用
mcp__chrome-devtools__navigate_page
工具访问更新后的URL。

3. Extract results (evaluate_script)

3. 提取结果(evaluate_script)

Same extraction script as gs-search step 2:
javascript
async () => {
  for (let i = 0; i < 20; i++) {
    if (document.querySelector('#gs_res_ccl') || document.querySelector('#gs_captcha_ccl')) break;
    await new Promise(r => setTimeout(r, 500));
  }

  if (document.querySelector('#gs_captcha_ccl') || document.body.innerText.includes('unusual traffic')) {
    return { error: 'captcha', message: 'Google Scholar requires CAPTCHA verification. Please complete it in your browser, then tell me to continue.' };
  }

  const items = document.querySelectorAll('#gs_res_ccl .gs_r.gs_or.gs_scl');
  const results = Array.from(items).map((item, i) => {
    const titleEl = item.querySelector('.gs_rt a');
    const meta = item.querySelector('.gs_a')?.textContent || '';
    const parts = meta.split(' - ');
    const authors = parts[0]?.trim() || '';
    const journalYear = parts[1]?.trim() || '';
    const citedByEl = item.querySelector('.gs_fl a[href*="cites"]');

    return {
      n: NEW_START + i + 1,
      title: titleEl?.textContent?.trim() || item.querySelector('.gs_rt')?.textContent?.trim() || '',
      href: titleEl?.href || '',
      authors,
      journalYear,
      citedBy: citedByEl?.textContent?.match(/\d+/)?.[0] || '0',
      citedByUrl: citedByEl?.href || '',
      dataCid: item.getAttribute('data-cid') || '',
      fullTextUrl: (item.querySelector('.gs_ggs a') || item.querySelector('.gs_or_ggsm a'))?.href || '',
      snippet: item.querySelector('.gs_rs')?.textContent?.trim()?.substring(0, 200) || ''
    };
  });

  const totalText = document.querySelector('#gs_ab_md')?.textContent?.trim() || '';
  const hasNext = !!document.querySelector('#gs_n a.gs_ico_nav_next, #gs_nm a:last-child');
  const currentUrl = window.location.href;
  return { total: totalText, page: NEW_PAGE, resultCount: results.length, hasNext, currentUrl, results };
}
Replace
NEW_START
and
NEW_PAGE
with the computed values.
提取脚本与gs-search步骤2相同:
javascript
async () => {
  for (let i = 0; i < 20; i++) {
    if (document.querySelector('#gs_res_ccl') || document.querySelector('#gs_captcha_ccl')) break;
    await new Promise(r => setTimeout(r, 500));
  }

  if (document.querySelector('#gs_captcha_ccl') || document.body.innerText.includes('unusual traffic')) {
    return { error: 'captcha', message: 'Google Scholar requires CAPTCHA verification. Please complete it in your browser, then tell me to continue.' };
  }

  const items = document.querySelectorAll('#gs_res_ccl .gs_r.gs_or.gs_scl');
  const results = Array.from(items).map((item, i) => {
    const titleEl = item.querySelector('.gs_rt a');
    const meta = item.querySelector('.gs_a')?.textContent || '';
    const parts = meta.split(' - ');
    const authors = parts[0]?.trim() || '';
    const journalYear = parts[1]?.trim() || '';
    const citedByEl = item.querySelector('.gs_fl a[href*="cites"]');

    return {
      n: NEW_START + i + 1,
      title: titleEl?.textContent?.trim() || item.querySelector('.gs_rt')?.textContent?.trim() || '',
      href: titleEl?.href || '',
      authors,
      journalYear,
      citedBy: citedByEl?.textContent?.match(/\d+/)?.[0] || '0',
      citedByUrl: citedByEl?.href || '',
      dataCid: item.getAttribute('data-cid') || '',
      fullTextUrl: (item.querySelector('.gs_ggs a') || item.querySelector('.gs_or_ggsm a'))?.href || '',
      snippet: item.querySelector('.gs_rs')?.textContent?.trim()?.substring(0, 200) || ''
    };
  });

  const totalText = document.querySelector('#gs_ab_md')?.textContent?.trim() || '';
  const hasNext = !!document.querySelector('#gs_n a.gs_ico_nav_next, #gs_nm a:last-child');
  const currentUrl = window.location.href;
  return { total: totalText, page: NEW_PAGE, resultCount: results.length, hasNext, currentUrl, results };
}
NEW_START
NEW_PAGE
替换为计算得到的值。

4. Report

4. 生成报告

Page {page} for "{query}" ({total}):

1. {title}
   Authors: {authors} | {journalYear}
   Cited by: {citedBy}
   Data-CID: {dataCid}

2. ...

{hasNext ? "More results available — ask me for the next page." : "No more results."}
{query}的第{page}页({total}):

1. {title}
   作者:{authors} | {journalYear}
   被引用次数:{citedBy}
   Data-CID:{dataCid}

2. ...

{hasNext ? "还有更多结果——可以让我跳转下一页。" : "无更多结果。"}

Notes

注意事项

  • This skill uses 2 tool calls:
    navigate_page
    +
    evaluate_script
  • Google Scholar shows 10 results per page by default
  • start
    parameter controls pagination offset
  • 此技能使用2个工具调用:
    navigate_page
    +
    evaluate_script
  • Google Scholar默认每页显示10条结果
  • start
    参数控制分页偏移量