获取源代码不可见的网页内容,提取SonicWall漏洞页Advisory ID与CVE ID
解决方案
你遇到的是典型的客户端动态渲染页面场景:页面初始HTML只包含基础框架,目标数据是页面加载后由JavaScript异步请求后端接口、再渲染到DOM里的,所以直接爬静态源码拿不到数据。可以按优先级选以下方案解决:
方案1:直接调用后端数据接口(最高效)
- 操作步骤:打开浏览器F12开发者工具,切换到「网络」面板,刷新页面后筛选
Fetch/XHR类型的请求,逐个查看响应内容,找到返回安全公告列表的接口。这类接口通常返回JSON格式的结构化数据,不需要解析HTML就能直接提取Advisory ID和CVE ID。 - 注意事项:请求接口时需要携带和浏览器一致的请求头(比如User-Agent、Referer、必要的Cookie或认证字段),避免被服务端拦截。
方案2:使用无头浏览器渲染页面(适配性最强)
如果接口有反爬策略、签名校验不好破解,可以用无头浏览器工具模拟真实浏览器加载页面,等完全渲染后再提取DOM内容,拿到的结果和检查元素中看到的完全一致。
- 推荐工具:Playwright、Puppeteer、Selenium
- 示例操作(Playwright为例):
- 安装依赖:
pip install playwright && playwright install chromium - 代码逻辑:启动无头模式的Chromium,访问目标页面,等待列表元素加载完成后,用CSS选择器或XPath定位对应ID的节点,提取文本即可。
- 安装依赖:
- 优势:不需要分析后端接口,适配所有动态渲染页面,你之前写的静态HTML提取规则大部分可以直接复用。
方案3:临时小批量提取用浏览器控制台导出
如果只是临时需要一次数据,不需要做自动化脚本,可以直接在页面打开F12的「控制台」面板,写几行JS代码遍历DOM提取数据,直接导出结果即可。
内容的提问来源于stack exchange,提问作者MVnD3X
相关产品推荐
相关产品推荐

