聊聊爬取數據的四種技巧
這篇文章,聊聊爬取數據的四種技巧。
圖片
1.Jsoup 輕量級HTML解析利器
筆者曾經服務于北京一家彩票公司,使用 JSOUP 抓取競彩的彩票結果數據,Jsoup 非常適合處理靜態網頁的數據提取。
它的核心優勢:
- 簡單易用:API設計直觀,學習曲線平緩
- CSS選擇器支持:類似jQuery的選擇器語法,定位元素非常方便
圖片
如圖,我們需要解析勝負彩的彩果,只需要找到 id = “kaijiang” 節點下的第一個 dl 節點,然后找到 class = “kj_num” 的 dd 節點對象,獲取它的 html 值即可。
示例代碼如下:
圖片
執行結果:
圖片
2.Charles 抓包分析
Charles 是一款功能強大的HTTP代理工具,主要用于Web開發和調試領域。作為一款專業的HTTP/HTTPS代理服務器和網絡抓包工具,它能夠完整記錄和解析所有經過代理的網絡流量。
當客戶端(如瀏覽器或移動設備)通過Charles進行網絡訪問時,該工具可以實時捕獲并分析所有HTTP/HTTPS請求和響應數據,包括完整的請求頭、響應頭、Cookie信息、緩存控制指令等關鍵網絡通信細節。
圖片
筆者在開發幻視 AI 助手 oneapi 功能時,使用 charles 分析 cherry studio 請求參數 :
圖片
3.Selenium 動態網頁抓取解決方案
對于很多動態渲染的網頁而言,想要抓取它的數據,就需要對網頁的 JS 代碼以及 Ajax 接口等進行分析。
而當 JS 代碼混亂,難以分析,Ajax 的接口又含有很多加密參數的時候,就非常難以直接找出規律,那么上述過程會花費大量的時間和精力。
Selenium 是 web 瀏覽器自動化測試的工具,它可以模擬用戶與所有主流瀏覽器之間的交互,比如點擊,輸入,抓取,拖拽等等。
但是 Selenium 與網絡爬蟲又有千絲萬縷的關系,由于現在的網頁大多采用是JavaScript動態渲染,使得爬蟲返回的結果可能與用戶實際看到的網頁并不一致。我們看到的網頁可能是經過Ajax加載,或者是JavaScript以及其他算法計算后生成的。
因此,我們可以使用 Selenium 直接模擬瀏覽器運行,我們肉眼看到的是什么樣,能夠抓取的數據就是什么樣。
筆者曾經使用 Selenium 分析 Boss 直聘崗位信息,使用 Selenium 需要配合 chromedriver 使用,流程分為如下三個步驟:
1)進入搜索頁面 , 搜索框中輸入‘自動駕駛’
圖片
2)搜索結果若出現登錄浮窗,則關閉,將頁面中職位列表通過 class 截取出來,保存到數據庫
圖片
3)點擊下一頁
圖片
4.RPA 機器人流程自動化
Robotic Process Automation(簡稱 RPA )機器人流程自動化,是一種技術,是以軟件機器人 + AI / OCR 等科技能力結合,在軟件上的某些業務操作場景中,達到機器替人,實現重復的工作自動化。
RPA 通過模擬人在電腦、平板和手機上的操作方式,包括 Web 自動化、桌面軟件自動化、手機 APP 自動化、鼠標鍵盤自動化等等,實現不需要人工,替人將操作流程自動化。
也就是說,任何有規則的工作,你可以讓 RPA 幫你完成,這個時間,你可以做其他任何事情。
而 影刀 正是中國 RPA 軟件的佼佼者,風頭正盛。
我們使用影刀,其本質就是,合理設計指令的執行順序,讓指令替我們完成重復性的工作。
圖片
我們可以設計一個 影刀 RPA 應用,結合大模型 DeepSeek ,幫助 HR 分析候選人是否符合條件。
5.總結
場景需求 | 推薦技術方案 | 技術特點 | 適用條件 |
簡單靜態頁面 | Jsoup | - 輕量級HTML解析 | 純靜態頁面 |
復雜動態頁面 | Selenium | - 真實瀏覽器環境 | Web 界面需要執行JS 且模擬用戶操作的場景 |
API接口數據 | Charles/Fiddler分析+代碼模擬 | - 直接抓取數據接口 | 前后端分離架構的網站/APP |
企業業務流程 | RPA工具(影刀等) | - 跨系統自動化操作 | 模擬完整人工操作流程的場景 |