灵猴市集Linghou Market

牛客热搜榜

牛客nowcoder-hot-search

牛客热搜榜 用途 读取牛客热搜榜,返回热搜排名、标题、热度和条目 ID。 执行前提 先打开 https://www.nowcoder.com/,再在当前标签页执行。热搜接口公开可访问,通常无需登录;接口会设置站点 Cookie,脚本使用浏览器 credentials: "include" 发送请求。若站点返回验证、限流、空结果或接口结构变化,脚本会直接报错…

热搜榜单
版本1.0.0
扫描passed
更新2026-06-28
超时30000ms

匹配范围

*://www.nowcoder.com/*

排除范围

未声明

能力声明

dom.read

代码

源码已展开
1const rawParams = params && typeof params === "object" ? params : {};2 3function integerParam(name, fallback, min, max) {4  const raw = rawParams[name];5  const value = raw === undefined || raw === null || raw === "" ? fallback : Number(raw);6  if (!Number.isInteger(value) || value < min || value > max) {7    throw new Error(`${name} must be an integer between ${min} and ${max}`);8  }9  return value;10}11 12function assertNowcoderPage() {13  if (location.hostname !== "www.nowcoder.com") {14    throw new Error("Open https://www.nowcoder.com/ first, then run this script");15  }16}17 18async function readJson(response) {19  try {20    return await response.json();21  } catch {22    throw new Error("Response is not valid JSON");23  }24}25 26assertNowcoderPage();27const limit = integerParam("limit", 10, 1, 50);28 29const response = await fetch("https://gw-c.nowcoder.com/api/sparta/hot-search/top-hot-pc", {30  headers: { Accept: "application/json" },31  credentials: "include",32});33 34if (!response.ok) {35  throw new Error(`Hot search request failed with HTTP ${response.status}`);36}37 38const payload = await readJson(response);39 40if (payload?.success === false || (payload?.code !== undefined && Number(payload.code) !== 0)) {41  throw new Error(`Hot search request returned error: ${payload?.msg || payload?.code}`);42}43 44const rows = Array.isArray(payload?.data?.result) ? payload.data.result : [];45const result = rows46  .map((item, index) => ({47    rank: index + 1,48    title: String(item?.title ?? "").trim(),49    heat: item?.hotValueFromDolphin ?? null,50    id: String(item?.uuid || item?.id || ""),51  }))52  .filter(item => item.title)53  .slice(0, limit);54 55if (result.length === 0) {56  throw new Error("No hot search data returned");57}58 59return result.map((item, index) => ({ ...item, rank: index + 1 }));