Python知識分享網(wǎng) - 專業(yè)的Python學(xué)習(xí)網(wǎng)站 學(xué)Python,上Python222
融合ChatGPT的智能化 Selenium網(wǎng)絡(luò)爬蟲設(shè)計與實現(xiàn) PDF 下載
匿名網(wǎng)友發(fā)布于:2024-09-02 09:43:03
(侵權(quán)舉報)
(假如點擊沒反應(yīng),多刷新兩次就OK!)

融合ChatGPT的智能化 Selenium網(wǎng)絡(luò)爬蟲設(shè)計與實現(xiàn) PDF 下載 圖1

 

 

資料內(nèi)容:

 

 
2.2 自動化爬蟲系統(tǒng)的設(shè)計
下面是該系統(tǒng)實現(xiàn)自動化爬蟲功能的詳細步驟及
相應(yīng)的 Python 代碼
導(dǎo)入程序中所用到的 Python 標準庫以及第三方
庫代碼說明
Selenium用于自動化瀏覽器操作,可以模擬用
戶在瀏覽器中的各種行為如點擊、輸入等常用于
爬蟲、測試和自動化任務(wù)。
SSL用于處理 SSL 證書,通過 ssl._create_default_
https_context = ssl._create_unverified_context 解決 SSL
證書問題報錯。
keyboard用于監(jiān)聽熱鍵實現(xiàn)功能函數(shù)的實時
調(diào)用。
threading用于創(chuàng)建線程,實現(xiàn)多線程執(zhí)行。
rePython 的正則表達式庫,用于字符串的模式
匹配和處理。
bs4BeautifulSoup):用于解析 HTML XML
文檔,方便地從網(wǎng)頁中提取數(shù)據(jù)。
time用于時間相關(guān)的操作,比如等待計時等。
undetected_chromedriver是對 selenium 的擴展
用于繞過檢測自動化測試的腳本而運行Chrome瀏覽器。
KeysSelenium 中的模塊用于模擬鍵盤按鍵。
WebDriverWait expected_conditionsselenium
中的模塊用于等待頁面元素加載。
sysPython 標準庫,提供對 Python 運行時環(huán)境
的訪問
atexit用于注冊在程序退出之前執(zhí)行的函數(shù)。
colorama一個用于在終端輸出中添加顏色的庫,
可以讓輸出更加豐富和醒目
庫的導(dǎo)入部分代碼如圖 2 所示
圖 2 庫的導(dǎo)入
使 用 Python Selenium 庫擴展 undetected_
chromedriver 來啟動 Chrome 瀏覽器,并監(jiān)聽熱鍵F8
來觸發(fā)一個功能回調(diào)函數(shù)hotkey_callback)。
同時,注冊一個在程序退出時關(guān)閉瀏覽器的回調(diào)函數(shù)
close_browser)。
代碼說明使用 Python Selenium 庫的擴展
undetected_chromedriver 來啟動 Chrome 瀏覽器以實
現(xiàn)繞過爬蟲目標網(wǎng)頁的反爬蟲機制[6]。
通過 driver.get() 方法導(dǎo)航到百度網(wǎng)頁https://
www.baidu.com)。方便用戶操作。
使用 keyboard 前提是已經(jīng)導(dǎo)入 keyboard
監(jiān)聽熱鍵 F8并在按下 F8 時觸發(fā) hotkey_callback
調(diào)函數(shù)主要功能函數(shù),獲取、解析網(wǎng)頁源碼以及
ChatGPT 交互等功能都包含其中,下文詳細介紹)。
創(chuàng)建 close_browser 函數(shù)用于關(guān)閉瀏覽器在程序
退出時,通過 atexit.register() 方法注冊 close_browser
函數(shù)確保在程序退出前關(guān)閉瀏覽器。
輸出提示信息,告知用戶按 F8 鍵開始工作,
提醒不要手動關(guān)閉程序的窗口,因為瀏覽器會在需要
時自動退出。
創(chuàng)建字典命名為 window_dict來存儲已打開
標簽頁的標題和句柄,方便標簽頁的控制切換。
接下來是一個 while 循環(huán)該循環(huán)會持續(xù)運行
至回調(diào)函數(shù)因錯誤中斷),用于監(jiān)測新標簽頁的操作。
跳出循環(huán)后,代碼通過 time.sleep(1) 等待 1 ,
然后調(diào)用 sys.exit() 來退出程序。
具體代碼如圖 3 所示。