这篇文章,聊聊爬取数据的四种技巧。
笔者曾经服务于北京一家彩票公司,使用 JSOUP 抓取竞彩的彩票结果数据,Jsoup 非常适合处理静态网页的数据提取。
它的核心优势:
如图,我们需要解析胜负彩的彩果,只需要找到 id = “kaijiang” 节点下的第一个 dl 节点,然后找到 class = “kj_num” 的 dd 节点对象,获取它的 html 值即可。
示例代码如下:
执行结果:
Charles 是一款功能强大的HTTP代理工具,主要用于Web开发和调试领域。作为一款专业的HTTP/HTTPS代理服务器和网络抓包工具,它能够完整记录和解析所有经过代理的网络流量。
当客户端(如浏览器或移动设备)通过Charles进行网络访问时,该工具可以实时捕获并分析所有HTTP/HTTPS请求和响应数据,包括完整的请求头、响应头、Cookie信息、缓存控制指令等关键网络通信细节。
笔者在开发幻视 AI 助手 oneapi 功能时,使用 charles 分析 cherry studio 请求参数 :
对于很多动态渲染的网页而言,想要抓取它的数据,就需要对网页的 JS 代码以及 Ajax 接口等进行分析。
而当 JS 代码混乱,难以分析,Ajax 的接口又含有很多加密参数的时候,就非常难以直接找出规律,那么上述过程会花费大量的时间和精力。
Selenium 是 web 浏览器自动化测试的工具,它可以模拟用户与所有主流浏览器之间的交互,比如点击,输入,抓取,拖拽等等。
但是 Selenium 与网络爬虫又有千丝万缕的关系,由于现在的网页大多采用是JavaScript动态渲染,使得爬虫返回的结果可能与用户实际看到的网页并不一致。我们看到的网页可能是经过Ajax加载,或者是JavaScript以及其他算法计算后生成的。
因此,我们可以使用 Selenium 直接模拟浏览器运行,我们肉眼看到的是什么样,能够抓取的数据就是什么样。
笔者曾经使用 Selenium 分析 Boss 直聘岗位信息,使用 Selenium 需要配合 chromedriver 使用,流程分为如下三个步骤:
1、进入搜索页面 , 搜索框中输入‘自动驾驶’
2、搜索结果若出现登录浮窗,则关闭,将页面中职位列表通过 class 截取出来,保存到数据库
3、点击下一页
Robotic Process Automation(简称 RPA )机器人流程自动化,是一种技术,是以软件机器人 + AI / OCR 等科技能力结合,在软件上的某些业务操作场景中,达到机器替人,实现重复的工作自动化。
RPA 通过模拟人在电脑、平板和手机上的操作方式,包括 Web 自动化、桌面软件自动化、手机 APP 自动化、鼠标键盘自动化等等,实现不需要人工,替人将操作流程自动化。
也就是说,任何有规则的工作,你可以让 RPA 帮你完成,这个时间,你可以做其他任何事情。
而 影刀 正是中国 RPA 软件的佼佼者,风头正盛。
我们使用影刀,其本质就是,合理设计指令的执行顺序,让指令替我们完成重复性的工作。
我们可以设计一个 影刀 RPA 应用,结合大模型 DeepSeek ,帮助 HR 分析候选人是否符合条件。
场景需求 | 推荐技术方案 | 技术特点 | 适用条件 |
---|---|---|---|
简单静态页面 | Jsoup | - 轻量级HTML解析- CSS选择器定位- 处理规范HTML文档 | 纯静态页面 |
复杂动态页面 | Selenium | - 真实浏览器环境- 支持JS渲染和交互 | Web 界面需要执行JS 且模拟用户操作的场景 |
API接口数据 | Charles/Fiddler分析+代码模拟 | - 直接抓取数据接口- 逆向分析参数加密- 高效获取结构化数据 | 前后端分离架构的网站/APP |
企业业务流程 | RPA工具(影刀等) | - 跨系统自动化操作- 可以和 AI 技术结合 | 模拟完整人工操作流程的场景 |