网页源代码查看在线工具 核心JS实现

简介: 本文详解“网页源代码查看工具”的核心JS实现:涵盖URL校验、参数组装、请求发送、编码解码、DOM解析提取(源码/文本/表单/链接)及高亮展示等全流程,纯前端驱动,轻量高效。

网页源代码查看在线工具 核心JS实现

这篇文章只讲本项目里“网页源代码查看”工具的核心 JavaScript 逻辑:用户输入网址后,如何完成参数校验、请求发送、抓取结果处理,以及链接/表单/纯文本提取。

在线工具网址:https://see-tool.com/webpage-source-viewer
工具截图:
工具截图.png

1)核心状态设计

页面侧用一组响应式状态管理输入、选项和结果:

const urlInput = ref('')
const ua = ref('pc')
const customUa = ref('')
const referer = ref('')
const postData = ref('')
const cookie = ref('')
const contentMode = ref('all') // all | text | form | links
const showHeader = ref('0')
const encoding = ref('UTF-8')
const highlight = ref('yes')
const rawHtml = ref('')
const responseMeta = ref(null)

这套状态直接决定了请求参数和最终展示内容。

2)入口校验与触发流程

点击“查看源码”后,不会立即发请求,而是先做两件事:

  1. 校验 URL 是否是 http/https
  2. 组装请求前的必要参数
const validateUrl = value => {
   
  try {
   
    const target = new URL(value)
    return ['http:', 'https:'].includes(target.protocol)
  } catch {
   
    return false
  }
}

通过入口函数先做校验,可以避免无效请求直接进入抓取流程。

3)请求参数组装与发送

请求体不只包含 URL,还会带上 UA、Referer、Cookie、POST 参数、内容模式、编码方式等配置:

const requestBody = {
   
  url,
  ua,
  uastr,
  referer,
  post,
  cookie,
  text,
  header,
  encoding,
  highlight
}

const response = await fetch('/api/viewhtml', {
   
  method: 'POST',
  headers: {
    'Content-Type': 'application/json' },
  body: JSON.stringify(requestBody)
})

这样前端把用户配置完整传给后端,后端按参数执行页面抓取并返回结果。

4)抓取逻辑:UA、GET/POST、编码解码

后端抓取核心是三步:

  • 按 UA 选项映射为真实 User-Agent,支持自定义 UA
  • post 参数时走 POST;否则走 GET
  • POST 内容如果是 JSON 结构就按 JSON 发送,否则按表单字符串发送

拿到响应后,会先读二进制,再按用户选择的编码(UTF-8、GBK、BIG5、ISO-8859-1)解码成文本,最后把状态码和响应头一起返回。

5)结果二次处理:源码 / 纯文本 / 表单 / 链接

页面拿到 rawHtml 后,通过 contentMode 分流:

  • all:原样展示
  • text:解析 DOM 后取 textContent
  • form:提取 form/input/select/textarea/option 的外层结构
  • links:提取所有 a[href]

实现上是先 DOMParser 转文档,再按选择器提取:

const extractLinks = html => {
   
  const doc = parseHtml(html)
  const links = new Set()
  doc.querySelectorAll('a[href]').forEach(el => {
   
    const href = el.getAttribute('href')
    if (href) links.add(href)
  })
  return Array.from(links).join('\n')
}

如果开启“显示响应头”,会把 HTTP Status + Headers 拼到正文前面,便于一起复制保存。

6)展示与操作动作

展示区支持代码高亮;当高亮不可用时,走 escapeHtml 兜底,避免把内容当成真实标签渲染。工具动作函数包括:

  • copyResult:优先 navigator.clipboard,失败回退 execCommand('copy')
  • downloadResult:按模式导出为 htmltxt
  • clearAll:清空输入和结果状态

这样就形成了完整闭环:输入参数 -> 校验 -> 抓取 -> 提取 -> 高亮展示 -> 复制/下载。

目录
相关文章
|
1月前
|
JavaScript
网页源代码查看 在线工具分享
一款基于Vue 3的在线网页源码查看工具,无需安装,支持PC/手机访问。可快速查看HTML源码、提取纯文本、抓取链接、分析表单,并提供User-Agent等进阶参数设置,操作简洁、响应迅速,适合内容校对与页面排查。
1261 5
|
1月前
|
存储 人工智能 自然语言处理
用AI生成网站需要会代码吗?新手入门全流程拆解
AI生成网站正从概念走向实用,通过自然语言即可自动生成页面、接口与数据结构。新手可零代码搭建官网、作品集等简单网站,但复杂功能仍需基础编程能力。AI降低技术门槛,却不降低思考门槛——未来开发者更需擅长用语言组织逻辑。
|
22天前
|
人工智能 API 云计算
喂饭级图文教程!2026年阿里云计算巢部署OpenClaw(Clawdbot) 流程
2026年,AI自动化代理工具已经成为日常办公与效率提升的标配,OpenClaw(曾用名Clawdbot)凭借开源、轻量、可扩展、支持自然语言驱动任务执行等优势,成为个人与小型团队最受欢迎的AI自动化平台。它可以完成文件管理、信息检索、定时任务、网页操作、内容处理等一系列自动化工作,真正实现“一句话交给AI,剩下的让它自己跑”。
631 6
|
18天前
|
存储 C语言 内存技术
C语言深度解析:大小端字节序——多字节数据的底层存储规则
大小端指CPU对多字节数据在内存中的存放顺序:大端高字节存低地址,小端反之。x86/ARM默认小端,网络字节序统一为大端。跨平台、网络通信、二进制协议开发中必须显式处理字节序转换,否则数据解析必错。
505 138
|
4天前
|
人工智能 弹性计算 Ubuntu
OpenClaw+Ollama v0.18.1 联网搜索全攻略:阿里云+本地三系统部署+千问/Coding Plan配置及问题排查
2026年,本地AI智能体已进入实用化阶段,OpenClaw(原Clawdbot/Moltbot)凭借强大的插件生态与多渠道接入能力,成为主流开源AI助手框架。Ollama v0.18.1版本带来工具调用优化、云模型无缝直连、结构化输出等核心升级,搭配@ollama/openclaw-web-search官方联网插件,可让OpenClaw突破本地模型知识截止日期限制,实现实时联网检索、信息整理、数据追踪等能力。本文基于最新版本,完整覆盖Windows11/MacOS/Linux本地部署、阿里云ECS云端部署、Ollama v0.18.1对接、联网搜索插件配置、阿里云千问API与免费Coding
416 19
|
1月前
|
移动开发 JavaScript 安全
文件16进制查看器 在线工具分享
一款基于Vue 3开发的在线文件十六进制查看器,纯前端运行,文件不上传、隐私安全;支持任意格式,提供空格/紧凑/大写三种Hex显示模式,一键复制或下载。即开即用,轻量高效。
490 9
文件16进制查看器 在线工具分享
|
10天前
|
传感器 机器学习/深度学习 算法
复杂三维山地环境下小龙虾优化算法COA求解多无人机动态避障路径规划研究附MATLAB代码
🌿 往期回顾可以关注主页,点击搜索 智能优化算法 神经网络预测 雷达通信 无线传感器 电力系统 信号处理 图像处理 路径规划 元胞自动机 无人机 物理应用 机器学习系列 车间调度系列 滤波跟踪系列 数据分析系列 图像处理系列 ✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 🍎 往期回顾关注个人主页:
|
1月前
|
人工智能 运维 API
2026年阿里云无影云电脑+本地部署OpenClaw(Clawdbot)+Skills集成小白喂饭级教程
2026年,AI自动化工具迎来全民普及,OpenClaw(原Clawdbot、Moltbot)凭借“零代码入门、全场景适配、轻量化运维”的核心优势,成为小白用户搭建专属AI助手的首选。而阿里云无影云电脑的专属一键部署方案,更是彻底打破了传统部署的技术壁垒,无需手动配置环境、编写复杂命令,依托云端算力实现7×24小时稳定运行,搭配本地部署的灵活便捷,再加上丰富的Skills生态插件,让小白也能轻松解锁“自然语言指令驱动全流程自动化”的强大能力。
626 18