gscdump

中文文档
7.9.1发布于 2026/11/03MITTypeScriptES Module构建来源已验证

直接谷歌搜索控制台和Bing网站管理员客户端键入查询和索引证据

中文使用文档
文档目录7 节
  1. 安装
  2. 查询及搜索分析
  3. b谷歌的其他资源
  4. 发送IndexNow更改通知
  5. 阅读必应索引证据
  6. 公共子路径
  7. 许可证

gscdump

npm version npm downloads license

直接谷歌搜索控制台和Bing网站管理员客户端键入查询和索引证据。

安装

npm install gscdump

gscdump 需要Node 22或更新版本。它能和b谷歌说话 fetch;它不需要谷歌API客户端包。

查询及搜索分析

创建一个带有访问令牌、类似oauth的客户端或刷新令牌凭证的客户端:

import { googleSearchConsole } from 'gscdump'

const client = googleSearchConsole({ accessToken: 'ya29.xxx' })
const sites = await client.sites()

使用 fetchOptions 对于自定义标头、请求钩子或重试设置:

const client = googleSearchConsole('ya29.xxx', {
  fetchOptions: {
    headers: new Headers({ 'x-project': 'analytics' }),
    retry: 0,
    timeout: 10_000,
    onRequest({ options }) {
      options.headers.set('x-request-id', crypto.randomUUID())
    },
  },
})

请求钩子在身份验证后运行。客户端等待每个钩子,包括钩子数组。 如果省略重试设置,则请求使用三次重试并尊重谷歌的重试设置 Retry-After 头。

使用 gscdump/query 构建一个请求。 client.query() 对谷歌的25,000行页面进行分页,并生成每个非空批。

import { googleSearchConsole } from 'gscdump'
import { between, date, daysAgo, gsc, page, query } from 'gscdump/query'

const client = googleSearchConsole('ya29.xxx')
const siteUrl = 'sc-domain:example.com'

const request = gsc
  .select(page, query)
  .where(between(date, daysAgo(30), daysAgo(3)))

for await (const rows of client.query(siteUrl, request)) {
  for (const row of rows)
    console.log(row.page, row.query, row.clicks)
}

如果你已经有一个搜索分析请求体,调用直接操作:

const response = await client.searchAnalytics.query(siteUrl, {
  startDate: '2026-06-01',
  endDate: '2026-06-30',
  dimensions: ['page'],
  rowLimit: 1000,
})

b谷歌的其他资源

对站点地图、检查和合格的索引API通知使用相同的客户端:

const sitemapList = await client.sitemaps.list(siteUrl)
const inspection = await client.inspect(siteUrl, 'https://example.com/docs')

await client.indexing.publish(
  'https://example.com/jobs/frontend-engineer',
  'URL_UPDATED',
)

索引通知仅适用于符合条件的工作或直播页面。 看到 URL检查和索引。

包根还导出批处理和投影帮助程序,例如 fetchSitesWithSitemaps, batchInspectUrlsFlatSettled, inspectUrlFlat, batchRequestIndexing。

发送IndexNow更改通知

在提交的主机上发布UTF-8密钥文件。 密钥文件包含您的密钥,没有其他内容。

import { indexNow } from 'gscdump/indexnow'

const client = indexNow()
const input = {
  host: 'example.com',
  key: 'your-key-12345',
  keyLocation: 'https://example.com/your-key-12345.txt',
}
const verification = await client.verify(input)
if (verification.ok && verification.value._tag === 'verified') {
  const result = await client.submit({
    ...input,
    urls: ['https://example.com/changed-page'],
  })
  console.log(result)
}

客户端在发送之前拒绝准确的主机或密钥目录之外的url。 验证允许HTTPS,禁用重定向,并且在10秒内最多读取1024字节。 注入 fetch, clock,或 timeoutMs 当你需要不同的运输或时间。 预期输入失败返回 Result;基础设施故障传播。

提交收据描述了交付。HTTP 200表示接受;HTTP 202意味着密钥验证仍然悬而未决。 两个响应都不能证明索引。 直接客户端发送一批最多10,000个url而不重试。 托管调用方使用SDK操作,将每个批处理的url限制在1000个以内。 看到 IndexNow协议。

阅读必应索引证据

使用 gscdump/bing 使用OAuth访问令牌或Bing网站管理员API密钥。客户端返回标记 Result 重视,从不从抓取证据中推断出索引判决。

import { bingWebmaster } from 'gscdump/bing'

const client = bingWebmaster({ accessToken: 'access-token' })
// API key alternative: bingWebmaster({ apiKey: 'bing-webmaster-api-key' })
const evidence = await client.getIndexingEvidence(
  'https://example.com/',
  'https://example.com/docs',
)

if (evidence.ok)
  console.log(evidence.value)

const [pages, queries, crawl] = await Promise.all([
  client.getPageStats('https://example.com/'),
  client.getQueryStats('https://example.com/'),
  client.getCrawlStats('https://example.com/'),
])

accessToken 也接受返回字符串或的函数 Promise<string>。 客户机在每次请求之前调用该函数,因此调用方可以在长时间导出期间刷新过期令牌。 命令行在使用时管理此刷新 gscdump bing login --mode local --oauth。

站点地图XML读取和遍历驻留 sitemapd. 产品feed范围和 精确成员散列存在 gscdump/sitemap-identity. 主持规范 Sitemap会员可以通过 @gscdump/sdk/v1。

公共子路径

  • gscdump/client:谷歌客户端和认证类型
  • gscdump/indexing:检查和索引助手
  • gscdump/indexnow:密钥验证和更改通知
  • gscdump/errors:谷歌API失败
  • gscdump/sites:站点助手
  • gscdump/sitemap-identity站点地图范围和成员散列
  • gscdump/query:查询生成器、列、操作符、太平洋日期帮助器和逻辑查询计划
  • gscdump/query/plan:只进行逻辑查询规划
  • gscdump/bing:必应站点、URL、流量、抓取证据和站点地图呼叫
  • gscdump/dates:明确的UTC和太平洋搜索控制台日期帮助程序
  • gscdump/contracts:搜索分析请求和响应契约
  • gscdump/result: Result 助手
  • gscdump/normalizeURL规范化
  • gscdump/tenant:站点ID编码和规范化

托管gscdump.com客户端驻留 @gscdump/sdk. 存储引擎和分析程序驻留在 @gscdump/engine 和 @gscdump/analysis。

许可证

麻省理工学院

版本与发布记录

gscdump 共发布 269 个版本,首次发布于 2026/01/18;过去 12 个月发布了 269 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
7.9.1latest2026/11/03今天
7.9.02026/10/286 天前
7.8.52026/10/268 天前
7.8.42026/10/268 天前
7.8.32026/10/2113 天前
7.8.22026/10/2113 天前

关于 gscdump 的常见问题

gscdump 是什么?

直接谷歌搜索控制台和Bing网站管理员客户端键入查询和索引证据

如何安装 gscdump?

在项目目录运行 npm install gscdump,或使用 pnpm add / yarn add / bun add。

gscdump 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

gscdump 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

gscdump 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.13.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

gscdump 可以商用吗?

gscdump 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

gscdump 还在维护吗?

最新版本 7.9.1 发布于 2026/11/03(今天);至今共发布 269 个版本,其中过去 12 个月发布了 269 个;首次发布于 2026/01/18。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。