999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

融合ChatGPT的智能化Selenium網絡爬蟲設計與實現

2024-09-26 00:00:00劉逸凱吳瑰
現代信息科技 2024年14期

摘 要:針對現代信息社會海量數據的提取難度,開發一種集成ChatGPT的自動化網絡爬蟲系統。將信息呈現給用戶,降低了使用門檻,結合系統的設計和實施,展示其在實際運用中的效果,實驗結果證明,利用Selenium技術自動執行爬取操作,降低數據提取難度,提升數據信息抓取的準確性。功能測試結果顯示,該系統有效提高了數據的使用率,為普通用戶從網絡中提取信息提供了新的途徑。用戶的信息挖掘和知識獲取需求,促進自動化網絡爬蟲技術的發展和應用。

關鍵詞:ChatGPT;Selenium;網絡爬蟲;自動化

中圖分類號:TP311 文獻標識碼:A 文章編號:2096-4706(2024)14-0069-07

Design and Implementation of Intelligent Selenium Web Crawler Integrated with ChatGPT

LIU Yikai, WU Gui

(School of Artificial Intelligence, Jianghan University, Wuhan 430056, China)

Abstract: In response to the challenges of extracting vast amounts of data in the modern information society, this paper develops an automated web crawler system integrated with ChatGPT. It presents information to users, lowers the entry barrier for utilization, and combines the design and implementation of the system, demonstrates its practical effectiveness. Experimental results confirm that the use of Selenium technology for automated crawling operations reduces data extraction difficulty and enhances the accuracy of data information retrieval. Functional testing results show that the system effectively improves data utilization rate, providing a new avenue for ordinary users to extract information from the web. The users' demands for information mining and knowledge acquisition promote the advancement and application of automated web crawler technology.

Keywords: ChatGPT; Selenium; Web crawler; automation

DOI:10.19850/j.cnki.2096-4706.2024.14.014

0 引 言

隨著互聯網的迅速發展,網絡所包含的信息呈現日益龐大的趨勢。在這個信息過載的時代,從海量數據中高效地提取有價值的信息已經成為各個領域研究的核心難題。在這樣的背景下,網絡爬蟲技術變得愈發關鍵,它為研究者和使用者提供了一條有效的途徑來獲得所需信息。

1 自動爬蟲系統介紹

本文旨在開發一種集成了ChatGPT的自動化爬蟲系統,使數據使用者能夠輕松高效地從網絡頁面中提取所需內容。傳統的網絡爬蟲通常要求使用者具備編程技能和對系統底層技術的深入理解。然而,本系統的目標在于消除這些技術門檻,使普通使用者也能夠享受到網絡爬蟲帶來的便利。

借助深度學習和自然語言處理技術的最新進展,ChatGPT已經在文本生成和理解任務上展現出卓越的性能[1]。基于此,本文充分利用ChatGPT在文本處理方面的強大能力,將其與自動化爬蟲技術相融合,從而實現了一種簡單而高效的網絡爬蟲系統。需要特別指出的是,本自動化爬蟲系統無須使用ChatGPT的API,而是充分利用Selenium技術來實現自動化爬取功能[2],從而確保了系統的免費使用。使用者只需打開欲爬取的網頁,登錄其ChatGPT賬號,輸入有關爬取內容的指令,系統將自動進行爬取,并將相關內容展示給使用者,從而極大地降低了使用門檻。

本文將詳細闡述所開發的Python程序的設計和實現過程,展示系統在不同數據源上的實驗結果,并對其性能進行全面評估。同時,還將探討系統的優勢和局限性,并提出未來改進的潛在方向。

通過本文,旨在為普通使用者提供一個簡單易用、高效可靠的網絡爬蟲工具,以支持普通使用者在信息挖掘和知識獲取方面的需求。相信這一系統的開發將積極推動自動化爬蟲技術的發展和應用,為信息時代的進步做出貢獻。

2 系統開發

為了結合ChatGPT實現自動化爬蟲功能,該研究使用了Python編程語言和Selenium Webdriver工具。Selenium是一個用于Web自動化測試的工具,可以利用它來模擬瀏覽器的行為并進行頁面數據的提取[3-5]。

2.1 自動化爬蟲系統功能的開發思路

首先,系統會自動打開一個瀏覽器,并等待用戶在瀏覽器中進行操作,直至進入爬蟲頁面(即特定的網絡頁面),等待用戶啟用熱鍵調用爬蟲功能。接下來,系統將使用Selenium庫獲取爬蟲頁面的源碼,并運用B4庫和正則表達式解析網頁內容,以確保有效地提取所需信息。系統將采用Selenium庫中的無頭模式,對新的瀏覽器進行操作,以實現本系統與ChatGPT之間的無干擾交互。解析所得的網頁內容將被傳送至ChatGPT,通過一系列對話,滿足用戶的爬蟲需求。

最后,系統將把ChatGPT所回答的內容返回給用戶,確保用戶獲得所需的爬蟲結果。爬蟲流程如圖1所示。

2.2 自動化爬蟲系統的設計

下面是該系統實現自動化爬蟲功能的詳細步驟及相應的Python代碼。

導入程序中所用到的Python標準庫以及第三方庫代碼說明:

Selenium:用于自動化瀏覽器操作,可以模擬用戶在瀏覽器中的各種行為,如點擊、輸入等,常用于爬蟲、測試和自動化任務。

SSL:用于處理SSL證書,通過ssl._create_default_https_context = ssl._create_unverified_context解決SSL證書問題報錯。

keyboard:用于監聽熱鍵,實現功能函數的實時調用。

threading:用于創建線程,實現多線程執行。

re:Python的正則表達式庫,用于字符串的模式匹配和處理。

bs4(BeautifulSoup):用于解析HTML和XML文檔,方便地從網頁中提取數據。

time:用于時間相關的操作,比如等待、計時等。

undetected_chromedriver:是對selenium的擴展,用于繞過檢測自動化測試的腳本而運行Chrome瀏覽器。

Keys:Selenium中的模塊,用于模擬鍵盤按鍵。

WebDriverWait和expected_conditions:selenium中的模塊,用于等待頁面元素加載。

sys:Python標準庫,提供對Python運行時環境的訪問。

atexit:用于注冊在程序退出之前執行的函數。

colorama:一個用于在終端輸出中添加顏色的庫,可以讓輸出更加豐富和醒目

庫的導入部分代碼如圖2所示。

使用Python的Selenium庫擴展undetected_chromedriver來啟動Chrome瀏覽器,并監聽熱鍵(F8鍵)來觸發一個功能回調函數(hotkey_callback)。同時,注冊一個在程序退出時關閉瀏覽器的回調函數(close_browser)。

代碼說明:使用Python的Selenium庫的擴展undetected_chromedriver來啟動Chrome瀏覽器以實現繞過爬蟲目標網頁的“反爬蟲機制”[6]。

通過driver.get()方法導航到百度網頁(https://www.baidu.com)。方便用戶操作。

使用keyboard庫(前提是已經導入keyboard庫)監聽熱鍵F8,并在按下F8時觸發hotkey_callback回調函數(主要功能函數,獲取、解析網頁源碼以及ChatGPT交互等功能都包含其中,下文詳細介紹)。

創建close_browser函數用于關閉瀏覽器。在程序退出時,通過atexit.register()方法注冊close_browser函數,確保在程序退出前關閉瀏覽器。

輸出提示信息,告知用戶按F8鍵開始工作,并提醒不要手動關閉程序的窗口,因為瀏覽器會在需要時自動退出。

創建字典(命名為window_dict)來存儲已打開標簽頁的標題和句柄,方便標簽頁的控制切換。

接下來是一個while循環,該循環會持續運行(直至回調函數因錯誤中斷),用于監測新標簽頁的操作。

跳出循環后,代碼通過time.sleep(1)等待1秒,然后調用sys.exit()來退出程序。

具體代碼如圖3所示。

回調函數功能分塊解析1)切換至操作標簽頁代碼說明:聲明5個全局變量:running_callback用于檢測回調函數是否正在調用,如果為真則F8無效,防止回調函數同時多次調用導致程序混亂;GPT_ready用于檢測是否已經登錄ChatGPT,如果為真則無須再次啟用無頭瀏覽器用于ChatGPT的交互;prompt_textarea用于ChatGPT的文本框交互;driver1即無頭瀏覽器實例,因整個程序僅一次使用,所以聲明為全局變量;running用于回調函數作為子線程對主線程的操控,當回調函數遇到錯誤時方便及時關閉程序。2)列出所有已經打開的標簽頁,供用戶選擇爬蟲的標簽頁并切換至該頁面進行操作。同時提醒用戶打開VPN以供后續的ChatGPT交互使用。獲取和解析頁面內容。

具體代碼如圖4所示。

代碼說明:an函數利用bs4解析網頁源碼[7],然后去除對于爬蟲無關的腳本、樣式、注釋等內容,并提取頁面純文本內容。operate_frames函數以遞歸的形式提取頁面所有子框架的內容[8]。二者結合即可提取用戶操作頁的所有文本內容,為后續工作做準備。

具體代碼如圖5所示。

檢測爬取的網頁是否存在多頁面代碼說明:通過獲取到的頁面純文本內容,首先檢測是否存在“下一頁”,如果存在,則循環執行“翻至頁面底部,然后點擊下一頁”的操作,循環次數可調整。如果不存在,首先判斷翻至頁面底部是否會加載出新內容,如果為真,則循環該操作,以獲取更多數據,循環次數可調整。如果為假,則跳出循環,只取單頁面內容進行操作。通過Selenium操作無頭瀏覽器,登錄ChatGPT。

該過程代碼簡單,只需根據登錄的步驟一步步自動化操作即可。其過程采用顯式等待的方式,等待網頁元素加載完畢后進行繼續操作。顯示等待時間可調,避開了因網絡原因等待時間過短而程序崩潰的弊端。

具體代碼如圖6所示。

通過Selenium操作無頭瀏覽器與ChatGPT對話。首先將前述步驟獲取的文本內容傳送至ChatGPT讓其學習,然后讓用戶輸入爬取數據的要求,將用戶的要求提交給ChatGPT。待ChatGPT回答結束后,再將完整的答案打印出來給用戶。

因ChatGPT每次提問的字數有限,故將前述步驟獲取的文本內容分割為多個短文本,再依次提交給ChatGPT。

代碼說明:當ChatGPT持續輸出答案時,對話框有一個動態顯示的省略號元素,當ChatGPT回答完畢時,省略號元素隨之消失。間隔較短時間內循環獲取網頁源碼,判斷該元素是否存在即可判斷ChatGPT輸出結束,隨后進行后續操作。

當ChatGPT輸出結束時,如果回答不完整,則會有文本為Continue Generating的按鈕出現,如果回答完整,則會有文本為Regenerate的按鈕出現,用于重新獲取答案。依據此即可判斷ChatGPT對話完畢。

具體代碼如圖7所示。

接下來讓用戶輸入爬蟲要求,并與ChatGPT交互代碼說明:經過對ChatGPT的元素審查,所有的回答class名稱一致,因此只需篩選出所有的回答存放至一個數組,并在每次對話完畢后取數組最后一個元素輸出即可輸出爬蟲結果。

最后,如果用戶對答案不滿意,系統設置了三次機會重新獲取答案,答案輸出完畢返回給用戶時,系統會提問用戶對爬蟲結果是否滿意,若不滿意,第一次系統會自動點擊Regenerate重新獲取答案返回給用戶,第二次、第三次允許用戶自行補充要求(即自行與ChatGPT對話)以獲取滿意的答案。具體代碼如圖8所示。

3 實驗和結果

3.1 網易新聞爬取測試

網站:網易新聞(https://www.163.com/news/article/IA8KMOIQ000189FH.html)。該試驗對網易新聞進行爬蟲,爬取內容為:新聞標題。網頁截圖和爬蟲結果分別如圖9(a)、圖9(b)所示。

(a)網頁

(b)爬蟲結果

3.2 東方財富爬取測試

網站:東方財富(https://finance.eastmoney.com/a/202307222788554017.html)。該試驗對東方財富進行爬蟲,爬取內容為:新聞標題+時間。網頁截圖和爬蟲結果分別如圖10(a)、圖10(b)所示。

(a)網頁

(b)爬蟲結果

3.3 微博爬取測試

網站:微博(https://weibo。com/entpaparazzi)。該試驗對微博進行爬蟲,爬取內容為:明星姓名。網頁截圖和爬蟲結果分別如圖11(a)、圖11(b)所示。

(a)網頁

(b)爬蟲結果

4 實驗結果分析

本實驗系統性地測試了ChatGPT與Selenium的自動化爬蟲功能。實驗涉及自動化爬蟲獲取網頁數據,并使用ChatGPT進行對話。在實驗中,特別關注了以下問題和發現:

4.1 操作速度和簡易性

實驗揭示了連接ChatGPT以進行對話所需的時間較長的情況,其主要原因是受到Selenium自動化操作的限制[9]。盡管這一挑戰難以優化,但Selenium操作的相對簡易性使其成為啟動對話的可行手段,僅需要用戶登錄即可。這對于那些不熟悉高度技術化操作的用戶而言,是一個顯著的優勢。Selenium操作的相對簡易性為用戶提供了一種更加輕松的使用體驗。

4.2 爬蟲結果的準確性

在本實驗中,自動化爬蟲的運用為ChatGPT的交互引入了大量的網頁數據,然而,這也帶來了一些挑戰,特別是在爬蟲結果的準確性方面存在一些問題。這些問題一是源于ChatGPT的文本處理能力受到一定限制,難以有效處理爬蟲提供的大規模數據。二是源于前期處理所得的網頁內容文本語境較為空洞,難以有效提升其邏輯性。ChatGPT的文本理解能力受到文本語境和復雜性的影響,因此,在處理大量來自網頁的數據時,其表現受到限制,影響了爬蟲結果的準確性。

4.3 網頁內容解析

在本次實驗中,還發現了一些網頁無法被爬取的情況,這通常與網頁內容解析相關。網頁的結構和內容呈現出多樣性,因此需要采用個性化的解析策略,以盡量確保從每個網頁中獲取準確而有用的信息。這可能包括針對特定類型的網頁設計定制的解析算法,以適應其獨特的結構和數據呈現方式。這種定制化的方法有望為克服解析難題提供有效的解決方案。

4.4 未來的研究方向

未來研究方向可能包括但不限于:

1)對ChatGPT提問方式的進一步優化。通過改進提問方式,可以更好地引導ChatGPT理解用戶意圖,從而提高結果的準確性[10]。這可能包括更具體、清晰的問題陳述,以及合理的上下文設置,以緩解文本處理方面的挑戰,引導ChatGPT生成更有信息價值的回應。優化ChatGPT的提問方式不僅有助于改善準確性,還可以提高用戶體驗。通過精心設計問題,用戶能夠更有效地與ChatGPT互動,獲取更有深度和洞察力的回答。這對于確保ChatGPT在應對復雜數據時能夠更為可靠地發揮作用至關重要,為用戶提供更加滿意的交互體驗。因此,在未來的研究中,進一步研究和優化ChatGPT的文本處理能力和對爬蟲數據的適應性將是關鍵的方向。

2)網頁內容解析技術的改進,通過探索新的解析方法和技術,或許能夠發現更為靈活和智能的方式,從而提高爬蟲的適應性和成功率。這種探索不僅可以幫助解決當前的問題,還能夠為未來應對不斷變化的網頁內容結構提供更加可持續的解決方案。

最終,本文的主要目標在于提供一種創新的開發思路,展現了結合ChatGPT與Selenium自動化爬蟲的潛在價值,以及簡化信息挖掘的新路徑。通過將自然語言處理與網絡數據采集相結合,探索了一種整合性的方法,旨在為用戶提供更直觀、高效的信息獲取體驗。本文的實驗部分也揭示了多個需要進一步優化的領域,包括操作速度、爬蟲結果準確性和網頁內容解析技術。這些問題為未來的研究和改進提供了重要的方向。期待未來的工作繼續深入挖掘這些挑戰,通過不斷優化ChatGPT與自動化爬蟲的集成,為用戶提供更為智能和便捷的信息獲取方式,推動信息技術領域的進步。

5 結 論

綜上所述,本文致力于開發一種融合了ChatGPT的自動化爬蟲系統,旨在為用戶提供一種從網絡頁面中輕松高效地提取所需信息的解決方案。通過將深度學習和自然語言處理領域的前沿技術與自動化爬蟲技術相結合,創造了一種簡單且強大的工具,使普通使用者無須深入了解編程或底層技術也能夠充分享受網絡爬蟲的便利。

本文的貢獻在于:

首先,成功地將ChatGPT與自動化爬蟲技術相融合,實現了一種簡便高效的爬蟲系統。這一系統的設計與傳統的爬蟲手段大相庭徑,它大大地降低了用戶的技術門檻,使更多人能夠從龐大的信息海洋中提取所需的有價值的內容。用戶無須深入了解編程或者底層技術,便能夠輕松操作該系統,實現對網絡數據的快速訪問和提取。

其次,本文充分發揮了ChatGPT在文本處理方面的卓越能力,將其應用于信息提取過程,為ChatGPT的應用擴展提供了嶄新的思路,為其應用領域注入了新的啟發。通過巧妙地結合ChatGPT與自動化爬蟲技術,不僅在信息挖掘領域探索了創新性的整合方式,而且為ChatGPT在實際應用中展現更廣泛的可能性提供了范例。這種獨特的結合為ChatGPT的應用場景帶來了全新的視野,使新一代人工智能技術能夠更靈活、高效地適應用戶需求,為自然語言處理技術開創了更為廣泛的應用前景。這種研究方法不僅強調了技術整合的重要性,也為未來ChatGPT應用的探索提供了有益的啟示,為推動自然語言處理技術的發展和創新貢獻了寶貴的經驗。

此外,采用了Selenium技術實現了自動化爬取功能,擺脫了對ChatGPT API的依賴,從而保證了系統的可持續性。用戶只需簡單的操作,即可快速地獲取所需信息,使得爬蟲過程變得更加無縫和便捷。

在實驗部分,展示了系統在不同數據源上的實際應用效果,證明了其在信息提取方面的可延伸性和發展前景。實驗結果不僅驗證了系統的可行性和實用性,還為系統未來的發展提供了有力的支持。

然而,本文所提出的系統仍存在一些局限性。例如,對于一些復雜的頁面結構或內容,系統的性能可能會受到一定影響。此外,對于內容過多的數據源,可能需要針對性地調整交互方式才能獲得最佳效果。

未來的工作方向可以包括進一步優化系統性能,提升對多樣化頁面的適應能力,以及針對大量文本的處理能力。總而言之,本文所開發的自動化爬蟲系統為信息獲取和處理領域帶來了新的可能性,為普通用戶提供了強有力的工具和支持。在技術不斷發展的背景下,我們有理由相信這一系統將在未來取得更加顯著的成果,為信息時代的發展做出持續的貢獻。通過持續不斷的改進和創新,可以更好地滿足用戶日益增長的信息需求,推動信息技術領域向前邁進。

參考文獻:

[1] 游麗江.人工智能聊天機器人的影響分析及對策建議——以ChatGPT為例 [J].網絡安全技術與應用,2023(12):128-130.

[2] 朱佳藝,劉從軍.基于Selenium的自動化測試框架設計與實現 [J].軟件導刊,2023,22(5):103-108.

[3] 高艷.基于Selenium框架的大數據崗位數據爬取與分析 [J].工業控制計算機,2020,33(2):109-111.

[4] 劉軍.基于 Selenium 的網頁自動化測試系統設計與實現 [D].武漢:華中科技大學,2014.

[5] 郭婺,郭建,張勁松,等.基于Python的網絡爬蟲的設計與實現 [J].信息記錄材料,2023,24(4):159-162.

[6] 馬軍,王效武,朱永川,等.基于對抗樣本生成的驗證碼反爬蟲機制研究 [J].應用科技,2021,48(6):45-50.

[7] 鞠慧.熱銷圖書爬取數據的BeautifulSoup庫解析 [J].福建電腦,2021,37(5):133-134.

[8] 時永坤.基于WebDriver的定向網絡爬蟲設計與實現 [J].軟件,2016,37(9):94-97.

[9] 李晨昊.基于BeautifulSoup+requests和selenium爬蟲網頁自動化處理的實現和性能對比 [J].現代信息科技,2021,5(16):10-12+18.

[10] 戴嶺,趙曉偉,祝智庭.智慧問學:基于ChatGPT的對話式學習新模式 [J].開放教育研究,2023,29(6):42-51+111.

作者簡介:劉逸凱(2002—),男,漢族,湖北武漢人,本科在讀,研究方向:數據挖掘、逆向工程;通訊作者:吳瑰(1979—),女,漢族,湖北武漢人,高級實驗師,碩士,研究方向:教學信息化管理。

收稿日期:2023-12-25

基金項目:2023年省級雙創項目(2023zd109)

主站蜘蛛池模板: 99偷拍视频精品一区二区| 国产成人午夜福利免费无码r| 8090成人午夜精品| 日本道综合一本久久久88| 久久黄色视频影| 成人无码区免费视频网站蜜臀| 国产成人精品高清在线| 日韩视频免费| 国产精品久久久久久久伊一| 午夜视频www| 亚洲视频欧美不卡| 国产91丝袜在线播放动漫 | 国产亚洲精品无码专| 欧美一区二区三区香蕉视| 亚洲色欲色欲www网| 中国毛片网| 国产亚洲精品无码专| 亚洲乱码精品久久久久..| 亚洲AV成人一区国产精品| 日韩精品欧美国产在线| 高清免费毛片| 久久成人免费| 久久精品这里只有国产中文精品| 亚洲成a人在线播放www| 国产小视频a在线观看| 国产91av在线| 欧美精品二区| 亚洲aⅴ天堂| 无码人中文字幕| 香蕉久久国产超碰青草| 国产成人免费观看在线视频| www.91中文字幕| 国产青榴视频| 无码国内精品人妻少妇蜜桃视频| 丰满人妻一区二区三区视频| 青青青视频91在线 | 最新无码专区超级碰碰碰| 少妇露出福利视频| a级毛片免费播放| 国模沟沟一区二区三区| 99视频只有精品| 天天色天天操综合网| 亚洲男人的天堂久久精品| 国产成人禁片在线观看| 国产91丝袜在线播放动漫| 久久久久青草线综合超碰| 一级黄色网站在线免费看| 亚洲乱伦视频| 日韩性网站| 3D动漫精品啪啪一区二区下载| 潮喷在线无码白浆| 亚洲国产清纯| 91色综合综合热五月激情| 啪啪国产视频| 久久99精品久久久久纯品| 国产精品自在拍首页视频8| 国产亚洲精品91| 亚洲中字无码AV电影在线观看| 国产男女XX00免费观看| 亚洲国产清纯| a毛片免费观看| 在线亚洲天堂| 超碰aⅴ人人做人人爽欧美 | 在线日本国产成人免费的| 国产精品污视频| 天堂在线www网亚洲| 国产成人综合日韩精品无码首页| 国产一级视频久久| 色亚洲成人| 2020久久国产综合精品swag| 久久6免费视频| v天堂中文在线| 亚洲综合色吧| 欧美成人免费午夜全| 少妇露出福利视频| 国产精品大尺度尺度视频| 久久综合丝袜长腿丝袜| 亚洲日本www| 色欲综合久久中文字幕网| 日韩欧美亚洲国产成人综合| 亚洲无线一二三四区男男| 欧美日韩资源|