静态网页可以直接解析 HTML,动态网页则需要理解浏览器渲染和 JS 执行,这就是两类爬虫的核心差别。
本文整理自早期学习笔记,发布时间按学习阶段归档。
正文
静态页面
1. Jsoup 的核心能力
Jsoup 本质上只是一个HTML 解析工具,它的工作流程非常简单:
- 向目标 URL 发送 HTTP 请求,获取网页的「原始 HTML 源码」(这一步和浏览器地址栏直接访问、然后右键 “查看网页源码” 看到的内容完全一致);
- 按照你写的 CSS 选择器 / 标签规则,从 HTML 源码里筛选、提取指定内容;
- 它没有任何执行 JavaScript 的能力,也模拟不了浏览器渲染页面的过程。
—
- 网页源码里只有一个空的
<div class="ant-table"></div>; - 页面加载后,JS 会发送一个 Ajax 请求到
https://www.mianshiya.com/api/search,拿到面试题数据,再渲染到空 div 里。
最常用的反爬虫手段
分析并直接请求 Ajax 接口(需要找接口地址、处理请求参数),
- 必须带浏览器的
Referer(来源)头,否则返回 403; - 必须带登录后的
cookie/token,否则返回空数据;
模拟浏览器执行 JS(需要用 Deno/Selenium/Playwright 等工具);
请求频率限制-IP 封禁、访问间隔要求、验证码
动态加载数据(Ajax / 接口)—拦截没有 js 能力的爬虫
图片占位:Pasted image 20260312220231.png
TODO
整理爬虫
模拟一个爬虫
