You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否绕过Cloudflare?或寻求替代方法运行指定Node.js请求代码

绕过Cloudflare并请求cs.money接口的可行方案

你用request库直接请求被Cloudflare拦截太正常了——Cloudflare会检测请求的浏览器特征、JS渲染能力这些,普通HTTP请求根本躲不过。下面给你几个实用的解决办法:

1. 用专门绕Cloudflare的HTTP库:cloudscraper

cloudscraper是Node.js生态里专门针对Cloudflare防护的工具,它会自动处理Cloudflare的JS验证、Cookie生成这些步骤,用法和request差不多,上手成本极低。

先安装依赖

npm install cloudscraper

替换后的请求代码(index.js)

const cloudscraper = require('cloudscraper');

cloudscraper.get('https://cs.money/load_bots_inventory?hash=1521879336025', { json: true })
  .then(body => {
    console.log(body);
    console.log(body.explanation);
  })
  .catch(err => {
    console.error('请求失败:', err);
  });

2. 用无头浏览器模拟真实用户行为:Puppeteer

如果cloudscraper哪天失效了,就用Puppeteer启动一个无头Chrome,完全模拟真实用户的浏览流程——Cloudflare几乎识别不了这种请求。

安装依赖

npm install puppeteer

示例代码

const puppeteer = require('puppeteer');

async function fetchInventory() {
  const browser = await puppeteer.launch({ headless: 'new' }); // 用新版无头模式更隐蔽
  const page = await browser.newPage();
  
  // 设置真实Chrome的用户代理,避免被识别
  await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36');
  
  try {
    await page.goto('https://cs.money/load_bots_inventory?hash=1521879336025', { waitUntil: 'networkidle2' });
    
    // 提取页面返回的纯JSON数据
    const bodyText = await page.evaluate(() => document.body.textContent);
    const body = JSON.parse(bodyText);
    
    console.log(body);
    console.log(body.explanation);
  } catch (err) {
    console.error('请求出错:', err);
  } finally {
    await browser.close();
  }
}

fetchInventory();

额外注意点

  • 别薅太狠:哪怕绕了Cloudflare,频繁请求还是会被cs.money自身的反爬限制,记得加合理的请求间隔。
  • 遵守规则:爬取前先看看cs.money的服务条款和robots.txt,别踩法律红线。
  • 你的server.js代码片段不全,如果要把请求集成到HTTP服务里,别用eval直接执行index.js,应该把请求逻辑放到路由处理函数里,这样才会在每次收到用户请求时执行。

内容的提问来源于stack exchange,提问作者Andrew Kasyanov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:32:41