仿站!这个神器能像素级“偷”网站,甚至有些功能都给你扒干净!

最近发现一个叫 same.new 的工具,简直颠覆了我的认知!它能像素级地复制一个网站,连按钮的逻辑、交互都给你扒得明明白白,真有点“吓人”!

今天就带大家扒一扒 same.new[1] 背后的技术,看看它是怎么做到这一切的。

same.new:网站克隆神器

先说说 same.new 这玩意儿有多牛。简单来说,你给它一个网址,它就能给你“克隆”出一个一模一样的网站。注意,这里说的可不是简单的复制粘贴 HTML/CSS,人家是把整个网站的结构、组件、样式,甚至交互逻辑都给你整出来,生成的是可维护的代码!

这不就是传说中的“像素级复制”吗?简直是前端工程师的福音(也可能是噩梦,哈哈)!

same.new 工作流程大揭秘

same.new 到底是怎么做到这一点的呢?我研究了一下,发现它的工作流程大概是这样的:

  1. 1. 分析目标网站:先看清楚你要“抄”的网站长啥样。
  2. 2. 创建项目结构:搭好架子,准备写代码。
  3. 3. 生成组件代码:把网站拆成一个个小零件,分别写代码。
  4. 4. 样式适配:给这些小零件穿上“衣服”,让它们看起来和原网站一样。
  5. 5. 部署:把做好的网站发布到网上,让大家都能看到。

下面我就来详细说说每一步是怎么做的。

1. 分析目标网站:看透你的“心肝脾肺肾”

same.new 要“抄”一个网站,首先得搞清楚这个网站的结构。这就像医生做手术前,得先看清楚病人的“心肝脾肺肾”在哪儿。

  • • 目标识别: same.new 会先访问你要“抄”的网址,获取网站的截图,然后分析这个网站的设计和结构。这一步很可能用了 Puppeteer 或 Playwright 这样的“无头浏览器”技术。这些技术能模拟用户访问网站,获取网页的 DOM 结构。
  • • 组件拆分: 接下来,same.new 会把整个页面分解成一个个小组件,比如头部、Logo、搜索框、列表、页脚等等。这就像把一辆汽车拆成发动机、轮胎、座椅等等。这一步可不简单,same.new 可能会用到以下几种技术:
    • • 基于视觉的分割: 用计算机视觉技术,分析页面截图,识别出不同的区域和元素。
    • • DOM 树分析: 分析网页的 HTML 代码结构,通过标签、类名等,推断出组件之间的关系。
    • • 启发式规则: 结合一些预定义的规则(比如常见的导航栏、页脚等),来辅助组件的识别。

2. 创建项目结构:搭好架子,准备开工

分析完网站结构,same.new 就要开始搭架子了。它选择了 Next.js 作为前端框架,还用了一个叫 shadcn/ui 的组件库。

  • • Next.js 框架: Next.js 是一个很流行的 React 框架,它支持服务端渲染(SSR)和静态站点生成(SSG),特别适合克隆这种静态内容为主的网站。
  • • shadcn/ui 组件库:这是一个基于 Tailwind CSS 的 UI 组件库,提供了很多现成的组件,可以直接拿来用,省去了很多写样式的时间。
  • • 依赖安装: same.new 会通过 npm install 安装项目所需的依赖,比如 Tailwind CSS、postcss、autoprefixer 等。

就像下面这样:

npm install tailwindcss postcss autoprefixer

3. 生成组件代码:给每个零件写代码

搭好架子,接下来就要给每个组件写代码了。这是 same.new 最核心的部分,也是最神奇的地方!

same.new 会为每个组件创建一个独立的 React 组件文件(.jsx 或 .tsx)。那么问题来了,它是怎么生成这些代码的呢?我猜可能有以下几种方式:

  • • 模板引擎: 针对不同类型的组件(比如头部、搜索框),same.new 可能预先定义好了一些代码模板,然后根据实际情况填充数据(比如链接、Logo 图片地址等)。
  • • AI 模型: same.new 可能会用到大型语言模型(LLM)或者专门训练的模型,根据组件的描述(比如“一个带有链接和登录按钮的头部导航栏”),生成对应的 React 代码。这就能解释为什么 same.new 能处理比较复杂的布局和交互。
  • • 混合方法: 结合模板引擎和 AI 模型,对于常见的组件用模板,对于更复杂的组件用 AI 生成。

4. 样式适配:穿上“衣服”,打扮漂亮

组件代码写好了,还得给它们加上样式,让它们看起来和原网站一样。same.new 主要用了 Tailwind CSS 来实现样式。

  • • Tailwind CSS: Tailwind CSS 是一种“实用类优先”的 CSS 框架,可以通过组合不同的类名来快速构建样式。
  • • 颜色主题匹配: same.new 会自动调整 Tailwind CSS 的颜色配置,让它和目标网站的颜色风格一致。这可能是通过分析页面截图或 CSS 样式表来提取颜色信息的。
  • • 布局调整: 通过 Tailwind CSS 的类名(比如 flexjustify-centeritems-center 等)来调整组件的布局,让它和目标网站一模一样。

5. 部署:发布到网上,让大家看看

最后一步,就是把做好的网站发布到网上。same.new 选择了 Netlify 来部署。

  • • Netlify: Netlify 是一个很流行的静态网站托管平台,提供了自动构建、部署、CDN 等功能。
  • • 构建配置: same.new 会创建一个 netlify.toml 配置文件,指定构建命令和输出目录。
  • • 版本控制与部署: same.new 内部可能用了 Git 这样的版本控制系统,每次修改都会创建一个新的版本,并尝试部署到 Netlify。

可能遇到的挑战

same.new 这么厉害,是不是就无敌了呢?当然不是,它也会遇到一些挑战:

  • • 动态内容: 如果目标网站有很多动态内容(比如用户登录状态、实时数据等),same.new 可能就没办法完全复制了。它更擅长克隆静态内容。
  • • 复杂交互: 对于复杂的 JavaScript 交互(比如复杂的表单验证、动画效果等),same.new 可能需要更高级的技术来实现。
  • • 反爬虫机制: 有些网站有反爬虫机制,same.new 可能需要想办法绕过这些机制,避免被屏蔽。
  • • 版权问题: 如果直接抄别人的网站,这里面可能会有法律风险,所以 same.new 也要考虑版权的问题.

竞品分析

市面上也有其他类似的工具,它们各有优缺点。我做了个简单的对比:

工具
核心技术
优点
缺点
same.new
AI 模型、组件化、Tailwind CSS、Next.js
自动化程度高、代码可维护性好、样式还原度高
可能无法处理复杂动态内容和交互
CopyCat
基于规则的 HTML/CSS 复制
简单易用
代码可维护性差、无法处理复杂布局和交互
SiteSucker
递归下载整个网站
可以下载整个网站,包括图片、样式等
无法生成可维护的代码、无法处理动态内容
HTTrack
递归下载整个网站
功能类似于 SiteSucker
功能类似于 SiteSucker

说了这么多

same.new 确实是一个很强大的网站克隆工具。它结合了多种前端技术和 AI 模型,实现了自动化分析、代码生成、样式适配和部署。虽然它还不能完美地复制所有类型的网站,但在克隆静态内容为主的网站方面,它已经做得很出色了。

作为一名开发者,我既惊叹于 same.new 的强大,也对它背后的技术充满了好奇。未来,随着 AI 技术的不断发展,我相信这类工具会越来越智能,越来越强大。

好了,今天就跟大家聊到这里。如果你觉得这篇文章对你有帮助,记得点赞、分享、在看三连哦!

引用链接

[1] same.new: https://same.new/

Leave a Comment

Your email address will not be published. Required fields are marked *