孫瀟坤
(合肥工業(yè)大學(xué) 安徽 宣城 242000)
作為一個復(fù)雜的項(xiàng)目,豆瓣書籍的信息網(wǎng)絡(luò)服務(wù)可以充分的集合用戶需求與網(wǎng)絡(luò)信息管理系統(tǒng)所查詢的內(nèi)容,豆瓣書籍的信息技術(shù)管理可以搜集、整理、分析用戶的所有信息需求,然后在傳送給用戶,可以幫助用戶更快的獲得自己想要的信息,可以為一些用戶解決很多和數(shù)據(jù)庫有關(guān)的問題,與此同時,可以提升豆瓣書籍的網(wǎng)絡(luò)信息管理技術(shù)水平,這是此次進(jìn)行論文研究的主要目的。
一般情況下,網(wǎng)絡(luò)爬蟲模型包括初始鏈接庫、網(wǎng)絡(luò)抓取模塊、處理模塊、解析模塊、DNS模塊、等待抓取連接隊(duì)列以及網(wǎng)頁庫。
網(wǎng)絡(luò)爬蟲系統(tǒng)中搜尋網(wǎng)頁的質(zhì)量和效率受搜尋策略的影響。當(dāng)前,網(wǎng)絡(luò)爬蟲策略分為三類:廣度優(yōu)先,深度優(yōu)先和最佳優(yōu)先。所有策略都有不同的特征,但是第一個是廣度優(yōu)先策略,也稱為廣度優(yōu)先搜索 應(yīng)用廣度優(yōu)先策略的常見算法包括單源最短路徑算法和最小生成樹算法。首先,如圖2.2所示,網(wǎng)絡(luò)鏈路的指向關(guān)系由樹結(jié)構(gòu)表示,因此根據(jù)樹的層次結(jié)構(gòu),將第一節(jié)點(diǎn)視為第一層。以此類推,根據(jù)鏈接優(yōu)先級形成搜索樹并按層進(jìn)行爬網(wǎng)。通常,對低級連接進(jìn)行優(yōu)先訪問,否則將其添加到隊(duì)列中。抓住每一層后,轉(zhuǎn)到下一層。第一頁面策略可以是基于初始鏈接對Web進(jìn)行爬網(wǎng)。與此同時,它們聚集在同一層中,從而有效避免了在沒有深黑洞的情況下進(jìn)行水平掃描的問題,但是,下載相應(yīng)的深頁可能會延遲。
根據(jù)廣度優(yōu)先原則,鏈接樹的鏈接訪問順序?yàn)锳-> BC-> DEF->G。與此相對的另一種方法是深度優(yōu)先搜索(深度優(yōu)先搜索),這是另一種常用的爬網(wǎng)策略。深度的原理基于將樹作為優(yōu)先級分支,使其盡可能深直到?jīng)]有更多分支為止,然后返回到原始父節(jié)點(diǎn)以選擇另一個鄰居,直到掃描完成。
根據(jù)系統(tǒng)的結(jié)構(gòu)和實(shí)施技術(shù),爬蟲網(wǎng)絡(luò)可以分為常見的Web搜尋器,基于Web的編譯等。實(shí)際使用情況通常與幾種爬蟲網(wǎng)絡(luò)技術(shù)的組合有關(guān)。爬蟲主題網(wǎng)絡(luò)與常規(guī)爬蟲網(wǎng)絡(luò)之間的主要區(qū)別在于爬蟲主題僅編譯滿足主題需求的頁面,并在網(wǎng)頁中選擇過濾器。但是,通用網(wǎng)絡(luò) 爬蟲沒有任何條件可以隨意爬行網(wǎng)頁。為了實(shí)現(xiàn)現(xiàn)場檢查,主題爬蟲實(shí)現(xiàn)了一種相關(guān)的頁面分析方法。在Web爬網(wǎng)過程中,需要在鏈接上進(jìn)行與該主題相關(guān)的計算,該鏈接需要添加到編譯隊(duì)列中。只需添加與該行相關(guān)的鏈接即可;不相關(guān)的鏈接將被丟棄。 爬蟲主題網(wǎng)絡(luò)的工作流程如圖3.3所示。選擇鏈接后,您將知道還需要相應(yīng)的搜索策略。因此,爬蟲主題系統(tǒng)在實(shí)施期間必須關(guān)注3個問題。(1)確定主題后如何編寫頁面。(2)一種確定主題與頁面相關(guān)性的算法。(3)選擇如何找到要瀏覽的鏈接。 爬蟲主題顯著改善了頁面數(shù),并提高了頁面鏈接的效率和準(zhǔn)確性。但是,掃描過程對“隧道”非常敏感,存在一些頁面丟失的可能。
Pycharm提供了對測試腳本的靈活操作和調(diào)試的支持。
在MyParser_get_Title腳本下運(yùn)行整個類測試。在實(shí)驗(yàn)室中運(yùn)行測試腳本,在測試類中運(yùn)行測試腳本。如果要調(diào)試斷點(diǎn),請使用Debug模式執(zhí)行單個任務(wù)并調(diào)試調(diào)試。
通過運(yùn)行testSuit,可以實(shí)現(xiàn)上述功能,但是IDE提供了靈活而直接的選項(xiàng)。 如果選擇在IDE中運(yùn)行項(xiàng)目,
一旦程序運(yùn)行完畢,從最后顯示的頁面中我們看一看到每一本書的大小都是相同的,只要將鼠標(biāo)移動到對應(yīng)的書本上,就可以看到這一書本的具體信息。
利用程序來獲得數(shù)據(jù),在網(wǎng)頁文本中已經(jīng)成功寫入,用戶只需要通過頁面來看出。整個程序可以實(shí)現(xiàn)數(shù)據(jù)抓取、數(shù)據(jù)庫存儲、信息整合等功能。此時,所有設(shè)計工作已經(jīng)完成。
所有網(wǎng)絡(luò)爬蟲都可以在網(wǎng)站上搜尋豆瓣書籍的信息,以便接收有關(guān)數(shù)據(jù)收集和處理的信息。所有程序的設(shè)計概念是從數(shù)據(jù)庫中讀取網(wǎng)站地址和頁面布局規(guī)則。 爬蟲程序會讀取每個地址處的整個網(wǎng)頁,并使用正則表達(dá)式來匹配其收集的信息。編譯過程使用多個線程一次爬網(wǎng)多個頁面,并使用鎖定和解鎖來確保每個豆瓣書籍中的信息都是準(zhǔn)確的。對數(shù)據(jù)進(jìn)行爬取后,編譯信息將存儲在特定的MySQL數(shù)據(jù)庫中。如果使用數(shù)據(jù),請使用該程序讀取數(shù)據(jù)庫,并將讀取的數(shù)據(jù)處理為所需的結(jié)果。需要做的最后一件事是為用戶提供顯示界面,從數(shù)據(jù)庫中讀取數(shù)據(jù)并以HTML文本編寫以查看最終結(jié)果。