如何复制网站页面及弹窗内的全部文本信息
可行解决方案汇总
方案1:浏览器控制台JS脚本(最推荐,无需额外装软件)
这类弹窗的数据本质已经提前加载到页面的前端变量里,或者点击后会调用接口渲染到DOM中,直接写脚本模拟批量操作即可:
- 按
F12打开浏览器开发者工具,切换到「控制台」标签页 - 先定位两个核心元素的CSS选择器:
- 所有可点击的姓名元素的选择器(可以用开发者工具左上角的选择箭头点一下姓名元素就能看到对应class,比如
.contact-name) - 弹窗内各字段的选择器(比如
.popup-phone对应电话、.popup-email对应邮箱)
- 所有可点击的姓名元素的选择器(可以用开发者工具左上角的选择箭头点一下姓名元素就能看到对应class,比如
- 运行类似结构的脚本即可批量提取,最终会自动生成可直接粘贴到Excel的结构化数据:
// 示例脚本,替换选择器为你页面实际的对应值即可 const result = [] const nameList = document.querySelectorAll('替换为姓名元素的选择器') const delay = (ms) => new Promise(resolve => setTimeout(resolve, ms)) async function run() { for(let i=0; i<nameList.length; i++){ // 模拟点击姓名 nameList[i].click() // 等待弹窗加载,可根据页面速度调整延时毫秒数 await delay(300) // 提取字段 const item = { 姓名: nameList[i].innerText.trim(), 电话: document.querySelector('替换为电话字段选择器')?.innerText.trim() || '', 邮箱: document.querySelector('替换为邮箱字段选择器')?.innerText.trim() || '', 职位: document.querySelector('替换为职位字段选择器')?.innerText.trim() || '', 公司: document.querySelector('替换为公司字段选择器')?.innerText.trim() || '' } result.push(item) // 可选:模拟点击空白处关闭弹窗,避免遮挡下一个点击 document.body.click() await delay(100) // 可选:如果页面超出一屏,自动滚动到当前元素位置 nameList[i].scrollIntoView({behavior: 'smooth', block: 'center'}) } // 输出结果,按制表符分隔,可直接复制粘贴到Excel const csv = '姓名\t电话\t邮箱\t职位\t公司\n' + result.map(i => Object.values(i).join('\t')).join('\n') console.log(csv) // 可选:自动复制到剪贴板 copy(csv) alert('提取完成,已自动复制到剪贴板,直接粘贴到Excel即可') } run()
方案2:桌面自动化工具(零代码基础可选)
如果完全不会写代码,可以用桌面自动化类工具配置操作循环:
- 提前调整页面缩放比例和窗口大小固定,记录姓名点击位置、弹窗内容选中复制的坐标
- 设置循环逻辑:点击对应位置 → 等待弹窗加载 → 全选复制弹窗内容 → 粘贴到Excel → 关闭弹窗 → 滚动页面到下一个姓名位置 → 重复执行
- 注意设置合理的等待时间,避免页面未加载完成就执行下一步操作
注意事项
- 如果页面有反爬限制,可适当调长脚本的延时时间,避免触发风控导致访问受限
- 提取前可以先拿前3条数据测试脚本逻辑,确认字段提取正确再全量运行
- 如果弹窗数据是点击后才调用接口拉取的,可以在开发者工具的「网络」标签页找到对应接口,直接批量请求接口拿数据,效率会比模拟点击更高
内容的提问来源于stack exchange,提问作者grxthy
相关产品推荐
相关产品推荐

