freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

網(wǎng)絡(luò)爬蟲技術(shù)探究畢業(yè)設(shè)計(jì)(參考版)

2025-03-04 00:16本頁(yè)面
  

【正文】 在每個(gè)測(cè)試周期中,測(cè)試人員和開發(fā)人員將依據(jù)預(yù)先編制好的測(cè)試大綱和準(zhǔn)備好的測(cè)試用例,對(duì)被測(cè)軟件或設(shè)備進(jìn)行完整的測(cè)試。在設(shè)計(jì)測(cè)試用例的時(shí)候,可綜合利用前面 介紹的測(cè)試用例和設(shè)計(jì)技術(shù),產(chǎn)生測(cè)試設(shè)計(jì)說(shuō)明文檔,其內(nèi)容主要有被測(cè)項(xiàng)目、輸人數(shù)據(jù)、測(cè)試過(guò)程、預(yù)期輸出結(jié)果等,實(shí)施測(cè)試。測(cè)試大綱是測(cè)試的依據(jù)。 我們可以看到,程序有很多的地方不足,我希望在以后的工作學(xué)習(xí)中繼續(xù)完善該程序的功能和錯(cuò)誤,以便提高自己的動(dòng)手能力和編程的熟練程度。我們以關(guān)鍵字 “ 新聞 ” 搜索 如圖 55 所示。 后續(xù)還要繼續(xù)完善這個(gè)程序,如圖 54 所示。 圖 54是 抓取的部分 URLs中 頁(yè)面的標(biāo)題。并且圖形界面設(shè)計(jì)的也不太盡如人意。 但是通過(guò)實(shí)現(xiàn)基本的爬蟲程序的爬行原理,我們可就基本的掌握最核心的爬蟲策略,然后我們可 以在原有的基礎(chǔ)上做出更加強(qiáng)大的爬蟲程序來(lái),實(shí)現(xiàn)更多有意義的功能。 圖 52 解析到的 URL地址 圖 53郵箱地址 通過(guò)圖 52 和圖 53,我們可以看到,程序基本完成了對(duì)既定的 URL 地址實(shí)現(xiàn)了站內(nèi)地址的解析和郵箱地址信息的抓取,基本實(shí)現(xiàn)了程序要求的功能。 圖 52 是抓取到的 URL 連接 , 圖 53 是在頁(yè)面中抓取 的郵箱地址,通過(guò)圖 52,我們發(fā)現(xiàn)不存在非法鏈接,說(shuō)明爬蟲有效的實(shí)現(xiàn)了既有的功能。 當(dāng)用戶輸入一個(gè)種子地址到一個(gè)文本框中,然后按“爬一下”后,系統(tǒng)將用戶輸入的地址傳遞到后臺(tái),然后從該網(wǎng)站開始爬行,直到所有的 URLs 全部抓取完畢, 如此同時(shí),用戶可以在第二個(gè)文本框中輸入特殊關(guān)鍵字,查詢到所需要的內(nèi)容信息,系統(tǒng)將會(huì)根據(jù)用戶的關(guān)鍵字匹配數(shù)據(jù)中的內(nèi)容信息,然后再將數(shù)據(jù)輸出到前臺(tái),用戶就可以獲得想要的信息。 首先登陸 首頁(yè),出現(xiàn) 前臺(tái) 的 界面,如圖 51 所示。在開發(fā)的過(guò)程中許多需要的技術(shù)都不懂或者用的不熟練,只有不停地查資料問(wèn)百度,在這個(gè)過(guò)程中學(xué)習(xí)到了很多新知識(shí),讓我受益匪淺。 } catch (SQLException e) { ()。 } catch (InstantiationException e) { ()。 ()。 (sqlStatement)。 connection = (url, userName, password)。)。,39。,39。 } } /** * 此方法把記錄存入數(shù)據(jù)庫(kù)中 */ public static void saveFieldToDB(int id, String urlField, String titleField, String bodyField){ sqlStatement = insert into + values( + id + ,39。 } catch (IllegalAccessException e) { ()。 } catch (ClassNotFoundException e) { ()。 state = null。 state = ()。 try { (driverName).newInstance()。 static String sqlStatement = null。 static Connection connection = null。 static String password = 123456。 public class DBOperator { static String driverName = 。 import 。 import 。 } 檢測(cè) URL 是否是已訪問(wèn)過(guò)的網(wǎng)頁(yè) , 首先要檢測(cè)一下 urlString 的 URL 合法性將已訪問(wèn)的 URL 加入到 “ 已訪問(wèn) URL 隊(duì)列 ” [15]。 i++) { if (((i))) accessed = true。amp。 for (int i = 0。 } URL 消重管理 消重管理是為了防止重復(fù)下載 URL, 具體代碼如下: private static boolean hasAccessed(String urlString) { boolean accessed = false。 while(()) {//是否有匹配的郵箱地址 temp=temp+ +()。//郵箱的//正則表達(dá)式 String temp=。 郵箱跟 URL 都是頁(yè)面中的重要的內(nèi)容,所有解析方式差不多,郵箱地址解析主要通過(guò)讀取 body 標(biāo)簽的內(nèi)容,通過(guò)郵箱地址正則表達(dá)式判斷是否是合法的地址,然后解析出來(lái)。 id++。 (urlString)。 // 待隊(duì)列非空時(shí)首元素出隊(duì)列, 則 抓取 urlQueueHead = ()。 urlQueueRear = urlQueueHead。 (urlString)。 } urlQueueHead = new UrlNode()。 29 信息科學(xué)與技術(shù)學(xué)院學(xué)士學(xué)位論文 String urlString = urlStr。 } } URL 存儲(chǔ)模塊 我們通過(guò) 鏈表類 URLNode 實(shí)現(xiàn) URL 存儲(chǔ),鏈表的優(yōu)點(diǎn)在于插入數(shù)量可以無(wú)限,所以通過(guò)該類較容易實(shí)現(xiàn) URL 的管理。))+host_inner[i])) return true。 if((((39。i。 下面的這段代碼就是判斷是否非站內(nèi)地址,代碼如下: String[] host_inner={.,.,.}。 研究 host 的組成可知 , host 的格式一般為 [站內(nèi)分類 .站點(diǎn)標(biāo)志串 .站點(diǎn)類型各異的串 ]。 由 RFC對(duì) URL的定義可知 ,URL 的格式為 一般情況下 , 同一網(wǎng)站內(nèi)所有頁(yè)面對(duì)應(yīng) URL 的 host 是相同的 , 所以可以使用 host 匹配作為判斷超鏈?zhǔn)欠裰赶蛘就獾臉?biāo)準(zhǔn) 。然后再進(jìn)行URL 消重處理,最后加入到 URL 等待隊(duì)列 [14]。這些格式的 URL 是無(wú)法獲取 HTML代碼的,也就不可能進(jìn)行 URL 解析 。相對(duì)地址需要先轉(zhuǎn)化為絕對(duì)地址,再進(jìn)行過(guò)濾。 URL 檢測(cè)模塊 該模塊主要是用于剔除非站內(nèi) URL或無(wú)法訪問(wèn)的 URL,因?yàn)?截取出來(lái)的字符串,可能為相對(duì)地址或者絕對(duì)地址。但是有些 URLs 是通過(guò)提交表單,或者通過(guò) javascript 來(lái)跳轉(zhuǎn)的。比如 href=“ url” 這樣情況,我們就可以通過(guò)截取雙引號(hào)之間的內(nèi)容來(lái)獲取 URL;如果是 href=‘ url’ 這種情況,我們就需要截取單引號(hào)之間的內(nèi)容來(lái)獲取 URL; 或者有些是 href=url,我們需要以等號(hào)為開始標(biāo)記,而這種情況通常結(jié)尾是空格或者 符號(hào)。 lia href=movie/html/ target=_blank 3D /a/lilia href=“ movie/html/” target=“ _blank” 手機(jī) /a/li 通過(guò)觀察得知,一般 href標(biāo)簽是以 href=這樣的形式出現(xiàn)的。 HTML 代碼中,頁(yè)面之間的跳轉(zhuǎn),關(guān)聯(lián)是通過(guò) href 標(biāo)簽來(lái)實(shí)現(xiàn)的。 k++。 int k=0。代碼通過(guò)檢索 URL 字符串中是否包含 “ .css” ,“ .rar” ,“ .zip”等類似這些后綴來(lái)進(jìn)行判斷 。像這種情況我們就直接拋棄這些 URLs。 當(dāng)?shù)玫竭@些完整的 URL 地址以后,我們需要對(duì)其進(jìn)行過(guò)濾。根據(jù)相對(duì)地址的概念,所以可以得到這個(gè)相對(duì)地址的絕對(duì)地址為 2 種 URL,它包含完整的協(xié)議信息,域名地址。我們需要將其轉(zhuǎn)化為絕對(duì)地址。a href=“ ./science/” target=_self高清在線科幻電影專區(qū) /aa href=“ TOM365/a。 if (indexOfa 0) return。 fromIndex = endIndex + 1。 } i++。 26 信息科學(xué)與技術(shù)學(xué)院學(xué)士學(xué)位論文 lengthOfWaiteQueue++。 (temp)。 } else { temp = new UrlNode()。 lengthOfWaiteQueue++。 (null)。amp。amp。 filename = null。 filename = (beginIndex,endIndex).trim()。 beginIndex = indexOfHref + ()。 25 信息科學(xué)與技術(shù)學(xué)院學(xué)士學(xué)位論文 while (indexOfa != 1) { indexOfHref = (href,indexOfa)。 indexOfa = (a)。 String filename = null。 private static void parseHref(String content,String dir) throws Exception { int fromIndex = 1。我們就去檢索空格和 標(biāo)簽,以下標(biāo)較小的字符作為截取 URL的結(jié)束標(biāo)記 [11]。這步以后原字符串又被截取為 “ target=” 開始,我們可以繼續(xù)檢索 href=標(biāo)簽。當(dāng)完成這一步操作后,原字符串被截取從 “ class=” 開始。我們先檢索 href=標(biāo)記,然后判斷出第 i+1 位為一個(gè)雙引號(hào),所以我們可以截取 i+1 位到第 2 個(gè)雙引號(hào)的位置。 a href= class=focu 首頁(yè) /aa href= ’movie_2021/mlist/’ target=_self動(dòng)作片 /aa href=movie_2021/mlist/ target=_self恐怖片 /aa href=movie_2021/mlist/ 愛情片 /a。然后判斷下表 i+1 位置上的字符是雙引號(hào),單引號(hào)或者兩者皆不 是,然后選擇對(duì)應(yīng)的字符作為截取 URL 的終止標(biāo)記。 24 信息科學(xué)與技術(shù)學(xué)院學(xué)士學(xué)位論文 URL 讀取 模塊 該模塊 從 頁(yè)面 中提取 URLs,主要是通過(guò)檢索字符串中的 href 字符串來(lái)實(shí)現(xiàn)的。 } 這個(gè)方法是通過(guò)調(diào)用 JAVA 里面的 URL 這個(gè)類,可以用給定的 URL 構(gòu)造這個(gè)類的一個(gè)實(shí)例,然后通過(guò) openConnection()這個(gè)方法 得到 HTML 代碼的數(shù)據(jù)流,然后再一行一行地把數(shù)據(jù)流轉(zhuǎn)換成 String 字符串,再用 StringBuffer 將這些字符串拼接成一個(gè)完整的 HTML 代碼。 } String contentString = ()。 (())。 (URL: + urlString + ERROR)。 } catch (MalformedURLException e) { ()。 line = ()。 line = ()。 try { url = new URL(urlString)。 BufferedReader reader = null。具體方法是調(diào)用 readFileContent(String urlString)這個(gè)方法: public static String readFileContent_Encode(String urlString) { StringBuffer content = new StringBuffer()。 首先由 文件通過(guò)文本框傳 URL 到 Servelet程序由 GetURL 類來(lái)響應(yīng),然后將再將接 受到得 URL 通過(guò)調(diào)用主類 Spider 來(lái)抓取網(wǎng)頁(yè), Spider 首先會(huì)向 URL 等待隊(duì)列里請(qǐng)求一個(gè) URL。種子注入模塊就是對(duì)初始 URL 進(jìn)行檢查,將錯(cuò)誤的過(guò)濾掉,合格的放入到 URL 信息庫(kù)中。 22 信息科學(xué)與技術(shù)學(xué)院學(xué)士學(xué)位論文 種子注入模塊 本模塊主要 工作 是 通過(guò) 從 給定 初始的 URL 開始抓取,初始 URL 是由人工挑選的主題站點(diǎn)首頁(yè)的 URL。 Spider 類:該類是主類,包含了網(wǎng)頁(yè)數(shù)據(jù)讀取以及 URL 的抽取,解析,保存等一些核心的方 法 。 DBOperator 類:該類中包含了用于連接數(shù)據(jù)庫(kù)的方法 。 在 GNU 的 GLIBC 庫(kù)中有對(duì)這些編碼的轉(zhuǎn)換支持。其中 GB 和 Bigs 編碼是 8 位編碼,其特征是一個(gè)漢字用兩個(gè) ASCII 字符來(lái)表示,而且第一個(gè) ASCII 字符的最高一位為 1。對(duì)于中文編碼,由于中文為相形文字,字符個(gè)數(shù)多,不能用簡(jiǎn)單的 ASCII 字符集表示,所以出現(xiàn)了很多通用的編碼格式,其中 UTF8 作為一種通用的統(tǒng)一字符編碼在 Web 上大量使用, Google 的內(nèi)部編碼機(jī)制就是使用UTF8 作為內(nèi)碼轉(zhuǎn)換的。在實(shí)現(xiàn)時(shí),URL 讀取器檢查 URL 臨界區(qū) 中的 URL 數(shù)目,如果小于 M, 則繼續(xù)往里面加 URL;HTTP 連接則每次都從 URL 臨界區(qū)讀取 任務(wù),除非 M 等于 0。該圖右邊的 n個(gè) HTTP連接處理單元,每一個(gè)都單獨(dú)處理一個(gè) HTTP 連接,而左邊的 URL 讀取器則從 URL 鏈接優(yōu)先隊(duì)列中讀取 URL 并將其寫到 URL 臨界區(qū)
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1