10 KiB
提示词
我想制作一个UE资源下载网站,功能与风格样式参照: https://www.fab.com/ https://www.fab.com/channels/unreal-engine https://www.fab.com/listings/bb7df0df-a2e7-430f-a382-7c3b121bf767
主要功能
- 使用爬虫爬取Fab.com的资源信息,使用该站点承载、显示这些信息。
- 部分已有资源使用Cloudreve网盘系统进行存储,点击按钮就可以下载到本地。
- 简单的账户登录机制, 并且提供OpenID登录方式。
技术选型
我打算使用: 前端技术:TypeScript、Vue 3、Vite;Vue Router、Pinia;前端组件请使用Element Plus,使用pnpm install element-plus 进行安装;除此之外还有Lucide Icons, Tailwind CSS (可选)。 后端技术:nodejs、Fastify、Mongoose、fastify-jwt 数据库:MongoDB、MySQL。 工具函数:Axios、VueUse、pnpm
部署方式
- 该网站项目使用gitea托管,使用CI/CD进行生成与部署。
- 部署到同IP Nodejs Docker容器中。
资产批量下载方式
将 https://github.com/legendary-gl/legendary 下载到./docs/legendary,之后学习里面的代码。这是一个第三方开源客户端,可以用来下载fab中的资产。
- 将相关内容写到./docs/legendary,并在skill.md添加引用。
- 检查这个项目是否存在安全问题。
- 尝试运行legendary来下载我的资产库,我会告诉你账号密码。
- 先下载10个按照Clouderve的结构将下载资产库上传到clouderve。
clouderve的目录结构:
- Fab
- UnrealEngine
- Plugins
- ProInstanceToolPlugin
- UE5.5
- UE5.6
- UE5.7
- ProInstanceToolPlugin
- Plugins
- UnrealEngine
在使用 Claude Code 或类似的 AI 开发工具编写爬取脚本时,绕过 Cloudflare 的核心在于**“去自动化特征”**。Cloudflare 的防护(如 5 秒盾、Turnstile)不仅检查你的 IP,还会深入分析你的浏览器指纹、TLS 握手以及行为模式。
以下是针对 2026 年技术环境,在 Claude Code 中实现避开风控的实战策略:
1. 使用具备“隐身”能力的浏览器框架
传统的 Selenium 或普通的 Puppeteer 极易被识别。你应该指示 Claude Code 使用以下增强库:
-
Playwright + Stealth 插件:目前最主流的选择。
-
SeleniumBase (UC Mode):这是目前绕过 Cloudflare 最强的工具之一,其
undetected-chromedriver模式能有效隐藏自动化痕迹。 -
npx Claude Code 提示词示例:
"请使用 Python 的 SeleniumBase 库,并开启 UC Mode(Undetected Mode)编写爬取脚本,以绕过目标的 Cloudflare 检测。"
2. 模拟真实浏览器的指纹
Cloudflare 会检查你的 HTTP 请求头是否与底层的 TLS 握手特征匹配(例如,如果你自称是 Chrome 但 TLS 握手特征是 Python-requests,会被秒封)。
-
TLS 指纹模拟:使用
curl_cffi库,它可以模拟真实浏览器(如 Chrome 120+)的 TLS 握手特征。 -
请求头伪造:确保
User-Agent、Accept-Language、Sec-Ch-Ua等字段与真实浏览器完全一致。
3. IP 质量与地理位置
即使代码再完美,数据中心的 IP(如 AWS, Google Cloud)也是 Cloudflare 的重点监控对象。
-
使用住宅代理(Residential Proxies):这些 IP 看起来像普通家庭用户。
-
轮换代理:每次请求或每隔几次操作更换一次 IP。
-
IPv6 优先:2026 年很多防护系统对 IPv6 的限制相对宽松,且资源更丰富。
4. 绕过交互挑战 (CAPTCHA/Turnstile)
当 Cloudflare 弹出验证码时,纯代码通常无法处理。
-
验证码识别服务:在代码中集成如 CapSolver 或 2Captcha 的 API。
-
Cloudflare Workers 代理:有时通过部署在 Cloudflare 内部的 Workers 作为跳板(利用其内部信任机制)会有奇效,但这取决于目标的具体配置。
综合架构建议
| 维度 | 推荐技术栈 | 作用 |
|---|---|---|
| 底层驱动 | SeleniumBase (UC Mode) 或 Playwright |
隐藏 WebDriver 特征 |
| 网络请求 | curl_cffi (Python) |
解决 TLS 指纹识别问题 |
| IP 资源 | 动态住宅代理 (Residential Proxies) | 绕过 IP 频率限制和黑名单 |
| 行为模拟 | B-Splines 曲线模拟鼠标移动 |
模拟真人操作轨迹 |
Claude Code 实战操作小贴士:
在 Claude Code 终端中,你可以这样引导它:
-
第一步:环境检查。先让它写一个简单的脚本访问
https://nowsecure.nl(这是一个专门测试 Cloudflare 绕过程度的网站)并截图。 -
第二步:迭代优化。如果截图显示被拦截,要求它:“目前的脚本被拦截了,请尝试集成
stealth插件并随机化延迟时间。” -
第三步:添加随机性。
Python
import time import random # 绝不要使用固定的 sleep(5) time.sleep(random.uniform(2.5, 7.8))
重要提醒: 爬取数据请务必遵守目标网站的 robots.txt 协议及当地法律法规。过度高频的爬取不仅会被封禁,还可能面临法律风险。
Clouderve
我部署了一个Clouderve http://10.145.96.67:5212/ 用于提供artlib具体的资产下载。请学习 API以及相关文档,之后进行构建。
主要逻辑
- 构建一个工具使用fab的账号密码登录并下载资产(暂缓开发,目前手工下载,并上传到clouderve上)
- Artlib每过一年就对Clouderve进行扫描,之后将数据库中的项目与Clouderve项对应。确保用户可以下载到指定引擎版本的资产,
- 用户进入资产详细页面后,如果该资产在Clouderve上存在,页面按钮就是 下载,点击后显示下拉菜单,显示可现在的版本,选择版本后进行下载;如果没有则显示访问Fab,点击后跳转到fab资产的原界面。
Clouderve目录说明
clouderve的目录结构:
- Fab
- UnrealEngine
- Plugins
- ProInstanceToolPlugin
- UE5.5
- UE5.6
- UE5.7
- ProInstanceToolPlugin
- Plugins
- UnrealEngine
说明
- UnrealEngine层级目录为资产种类,除此之外还可以是Unity、MetaHuman等。
- Plugins为资产类型与Fab资产分类有关,除此之外还可以Decal、Material、Texture。
- ProInstanceToolPlugin层级为具体的资产名文件夹,我这边上传了ProInstanceToolPlugin作为案例。
- UE5.5层级目录为引擎版本,目前我只打算托管UE4.27、UE5.0~最新版本。
API文档
Artlib的意义&提效
- 收集公司已经采购的资产包(Fab、Artstation等),方便团队以及公司其他美术同学快速找到资产包。使用RAG技术将Fab资产介绍信息整合成知识库,以进行更加精准的资产检索。
- 解决Muse非常难用的问题。ShareStore资产不够多的问题。
- 尽可能做到一次收集完所有资产,避免去Muse、ShareStore上来回搜索。
- 多网站资产汇总,只需要一个网站就能检索其他所有资源站的信息。
- Fab的资产信息具备高准确性,制作的知识库检索资产的准确性远超Muse、ShareStore。
- 资产包资产原子化管理,做到检索单个资产的同时,只需下载所需资产,无需下载整个资产包。
- 将下载的原子资产进行归类摆放,比如: /Plugins/ArtLib/Models/目录下,放置Foliage、Building、Prop等。
- 给之后的AI开发游戏流程提供弹药,AI可以快速找到合适的模型与资产。
- 维护团队封样库以及材质库信息,方便在工作时能及时察觉复用可能性,来进行复用。比如:李双在SVN上整理的各种分好类的资产库。
- 给林海开发的插件提供资产包资源 ,让用户可以直接在UE找到合适资产并直接使用。
- 给海量模型进行分类,为公司未来的生成模型AI提供训练数据。
- 提供资产点赞窗口,之后学习Muse每天采购点赞最多的资产,以此吸引用户来该平台抢占Muse空间。
开发计划
- Web开发
- 修复一些交互Bug。
- 资产点赞功能,机器人信息推送。
- Artstation等网站数据接入。
- 在服务端部署UE Editor,每个资产(模型、贴图……)进行视觉判断,打上合理标签。
- AI模型部署。
- UE Editor 群集方案实现。
- 借到财务账号,并使用爬虫爬取Fab资产。
- 服务器扩容,申请2个服务器用于存储数据,并且部署对象存储服务,保证数据不会嗝屁。
- UE插件开发
- 实现网页点击下载就能直接安装到UE目录。
- 实现资产包资产批量修改引用,实现资产整理功能。
- 林海Runtime Load资产插件接入Artlib服务。
- Plugin云端加载方案探索(通过网盘系统构建虚拟目录,再通过Webdav接入UE,可能会不稳定)
- 开发类似普罗米修斯的资产库客户端(WebApp)
启动器
提示词
我想制作一个类似Fab启动器,用于显示Artlib中的内容、另一个网站内容、以及连接UnrealEngine进行一些资产相关的操作(待实现)
主要功能
- 使用Netease OIDC进行身份验证。
- 显示Artlib内容,需要做好交互。启动器验证之后,会自动帮Artlib验证。
- 显示另一个网站AssetMaker的内容,需要做好交互。启动器验证之后,会自动帮Artlib验证。
- 连接UnrealEngine进行一些资产相关的操作(待实现)
UI参考
相关UI参考./docs/screenshots
- 左边是一个可折叠的侧边导航栏,点击左下角的折叠按钮后,可以折叠。
- 左边侧边栏方面放置3个按钮即可,Fab、角色生成 按钮、知识技能库
- 折叠效果参考
- fab_reference1.png
- fab_reference1.5.png
- Fab 按钮:点击后显示网站 D:\AI\Website\NeteaseAITA_Artlib,使用软连接获取对应的前端文件。
- 角色生成 按钮:点击后显示外部网站。参考 LaunchHub_1.png
- 知识技能库 按钮:点击后显示外部网站 https://ta.netease.com 。参考 LaunchHub_2.png
技术栈
- WebApp框架:Electron、Electron-vite
- 使用 npm create @quick-start/electron@latest 来建立脚手架。
- 前端技术:TypeScript、Vue 3、Vite;Vue Router、Pinia;前端组件请使用Element Plus,使用pnpm install element-plus 进行安装;除此之外还有Lucide Icons, Tailwind CSS。
- 工具函数:Axios、VueUse、pnpm