【正文】
參考文獻 1. Zhang W F,Xu B W,and Yang H J,Learning Users, Interest for Web PreFetching,Proceedings of IEEE 4th International Workshop on Web Site Evolution (WSE2020), MONTRAL,Canada,October2,2020 2. Heaton J. Programming Spiders,Bots and Aggregators in Java. 3. Jeff Heaton[美 ],董兆豐譯,網 絡機器人 JAVA編程指南〔 M〕,北京電子工業(yè)出版社, 2020,238252. 4. 佟曉筠等,面向主題的智能機器人 ROBOT 研究與實現〔 J〕,電子與信息學報, 25 卷 2020。 public HTTP getHTTP()。 public void run()。//清除作業(yè)管理器的存儲。//設置 URL 的狀態(tài):等待、運行、完成、錯誤。//將一個新的 URL 送入等待隊列。 RobotSQLWorkload 類――― 是網絡機器人的作業(yè)管理器,可以將作業(yè)存儲在 SQL 數據庫中,通過使用SQL 數據庫,作業(yè)管理器可以處理大型的站點,也是實現高性能網絡機器人重要的類。 public void run()。 public void setMaxBody(int mx)。 synchronized public void processPage(HTTP page)。 synchronized public Boolean foundExternalLink(String url)。 synchronized public void getWorkload(String url)。 這種結構可以方便地引入新的方法改善和提高系統(tǒng)的功能,也可以建立新的類擴充其系統(tǒng)的功能。 PopQueue(url,FinishQ,LinkType) 。//否則將鏈接加入到處理隊列中。 If url linktype is EnternalLink Then//如鏈接是外部鏈接。 SaveFileText(Document,FileText)。 Begin url=PushQueue(WaitQ)。//超鏈類型:內部、外部、其他鏈接。 Queue enum{WaitQ,FinishQ,RunQ,MistakeQ}。只要等待隊列中有一個網頁或網絡機器人正在處理一個網頁,網絡機器人就會繼續(xù)它的工作。網絡機器人將不會對加入到錯誤隊列的網頁做進一步地處理。新發(fā)現的 URL 被加入到這個隊列。 我們研究的高性能網絡機器人采用的是非遞歸程序設計思想,當使用非遞歸的方法時,先給定網絡機器人一個要訪問的網頁集合,它會把這一集合加到它將要訪問站點的隊列中去。內部鏈接指的是超鏈接所指向的網頁與包含該鏈接的網頁在同一臺 Web 服務器中;外部鏈接指的是超鏈接所指向的網頁所在的 Web 站點與包含該鏈接的 Web 站點不同;其它鏈接指的是超鏈接指向非網頁的資源,如指向 Email地址等。在 Java 中,有四種類型的數據庫驅動程序可以使 JDBC 有效的訪問數據庫,它們分別是 JDBCODBC 橋,部分 Java 和部分本機驅動程序,中間數據訪問服務器以及純 Java 驅動程序。所以管理和維護大型的 Web 站點的網頁列表必須采用基于 SQL 的數據庫隊列管