⑴ 如何用JAVA寫一個知乎爬蟲
下面說明知乎爬蟲的源碼和涉及主要技術點:
(1)程序package組織
(2)模擬登錄(爬蟲主要技術點1)
要爬去需要登錄的網站數據,模擬登錄是必要可少的一步,而且往往是難點。知乎爬蟲的模擬登錄可以做一個很好的案例。要實現一個網站的模擬登錄,需要兩大步驟是:(1)對登錄的請求過程進行分析,找到登錄的關鍵請求和步驟,分析工具可以有IE自帶(快捷鍵F12)、Fiddler、HttpWatcher;(2)編寫代碼模擬登錄的過程。
(3)網頁下載(爬蟲主要技術點2)
模擬登錄後,便可下載目標網頁html了。知乎爬蟲基於HttpClient寫了一個網路連接線程池,並且封裝了常用的get和post兩種網頁下載的方法。
(4)自動獲取網頁編碼(爬蟲主要技術點3)
自動獲取網頁編碼是確保下載網頁html不出現亂碼的前提。知乎爬蟲中提供方法可以解決絕大部分亂碼下載網頁亂碼問題。
(5)網頁解析和提取(爬蟲主要技術點4)
使用Java寫爬蟲,常見的網頁解析和提取方法有兩種:利用開源Jar包Jsoup和正則。一般來說,Jsoup就可以解決問題,極少出現Jsoup不能解析和提取的情況。Jsoup強大功能,使得解析和提取異常簡單。知乎爬蟲採用的就是Jsoup。
(6)正則匹配與提取(爬蟲主要技術點5)
雖然知乎爬蟲採用Jsoup來進行網頁解析,但是仍然封裝了正則匹配與提取數據的方法,因為正則還可以做其他的事情,如在知乎爬蟲中使用正則來進行url地址的過濾和判斷。
(7)數據去重(爬蟲主要技術點6)
對於爬蟲,根據場景不同,可以有不同的去重方案。(1)少量數據,比如幾萬或者十幾萬條的情況,使用Map或Set便可;(2)中量數據,比如幾百萬或者上千萬,使用BloomFilter(著名的布隆過濾器)可以解決;(3)大量數據,上億或者幾十億,Redis可以解決。知乎爬蟲給出了BloomFilter的實現,但是採用的Redis進行去重。
(8)設計模式等Java高級編程實踐
除了以上爬蟲主要的技術點之外,知乎爬蟲的實現還涉及多種設計模式,主要有鏈模式、單例模式、組合模式等,同時還使用了Java反射。除了學習爬蟲技術,這對學習設計模式和Java反射機制也是一個不錯的案例。
4. 一些抓取結果展示
⑵ 「知乎·應用工程」OpenGeoSys(OGS)使用指南——開發者指南——開始入門——構建配置(Windows)
在編譯OpenGeoSys(OGS)之前,開發者需選擇軟體配置,配置選項包括串列/並行化,以及可選功能或模塊如MFront材料模型。為了分離源代碼與生成文件,創建build目錄,它們可任意放置。為不同配置可創建多個build目錄,但共享一個源代碼目錄。典型目錄結構包括:
(1)release
(2)debug
構建配置使用開源工具CMake。CMakeLists.txt文件替代傳統Makefile或IDE項目文件。CMakeLists.txt內定義的配置預設,如CMakePresets.json,簡化構建配置過程。若需手動配置,遵循CMake命令行指南。Ninja構建工具在Visual Studio命令行中啟用,通過在x64 Native Tools Command Prompt for VS 2019中進行設置。Windows Terminal提供更佳終端體驗。CMake GUI圖形工具用於可視化配置,通過設置源代碼目錄、build目錄,選擇生成器(如Visual Studio 16 2019),並激活所需配置選項。生成按鈕激活後,點擊生成以在選定build目錄生成項目文件。
為了創建特定配置,僅需刪除現有build目錄,新建一個目錄並重新配置。使用CMake預置時,通過cmake命令並設置預置值,創建build目錄外,包含CMake默認選項和所需配置。使用-D前綴傳遞CMake變數或選項,或使用-G參數覆蓋生成器,-B參數覆蓋構建目錄。所有編譯文件存儲於此目錄,避免源代碼受中間文件影響。編譯目錄內容不受版本控制,可隨時從源代碼重新生成。若需重新開始配置,只需清除build目錄並建立新目錄。
用戶自定義預置在源代碼根目錄下創建CMakeUserPresets.json文件,添加個人預設。這文件被Git忽略。Ninja構建工具與Visual Studio命令行結合使用。Visual Studio配置需要在release文件夾中打開解決方案文件時,切換至Release配置。使用Visual Studio進行多重配置時,每個configuration需要一個build目錄。發布與調試版本通過創建兩個build目錄實現。在Visual Studio中,確保選擇正確配置,即在release文件夾中打開解決方案文件時,配置應切換為Release。專業提示:使用Windows Terminal獲得更佳終端體驗。若CMake預置不可用,手動創建build目錄並設置所有必要參數。若需使用可視化工具配置,CMake GUI圖形工具提供設置源代碼目錄、build目錄,選擇生成器,激活配置選項的界面。最終點擊生成按鈕以在選定的build目錄生成項目文件。