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

正文內(nèi)容

基于qt的網(wǎng)絡(luò)爬蟲(參考版)

2024-12-11 00:28本頁面
  

【正文】 emit find_url(url,str)。 QRegExp rx(key_word)。 str = (QRegExp(/title[\\s|\\S]*),)。 QString str=get_html(url)。 } return list。 list (0)。 39。 int pos = 0。 (a.*href=.*(.*))。 (TRUE)。這種方式的好處在于擴(kuò)充性很好,以后每發(fā)現(xiàn)一種新的類型,就可以把這種處理方式做成一個插件補(bǔ)充到插件管理服務(wù)程序中 。 網(wǎng)頁內(nèi)容的提取,一直是網(wǎng)絡(luò)爬蟲中的一個重要的技術(shù)。對于有許多數(shù)據(jù)是放在數(shù)據(jù)庫的網(wǎng)站,需要通過本網(wǎng)站的數(shù)據(jù)庫搜索才能獲得信息,這些就給網(wǎng)絡(luò)爬蟲的抓取帶來很大的困難。由于開發(fā)語言的不斷增多,動態(tài)網(wǎng)頁的類型也就越來越多,如: asp、 JSP、PHP 等。 動態(tài)網(wǎng)頁 一直是網(wǎng)絡(luò)爬蟲所面臨的難題。這樣,在搜索 “XXX”和 “照片 ”的時候都能讓搜索引擎搜索到這張圖片。 對于多媒體、圖片等文件,一般都是通過鏈接的錨文本和相關(guān)的文件注釋來判斷這些文件的內(nèi)容。而過濾這些無效鏈接 則需要統(tǒng)計大量的網(wǎng)頁結(jié)構(gòu)規(guī)律,抽取一些共性,統(tǒng)一過濾;對于一些重要而結(jié)果特殊的網(wǎng)站,還需要個別處理。所以,在提取網(wǎng)頁內(nèi)容的時候,也需要過濾這些沒有用的鏈接。但在識別 這些信息時,需同步記錄許多版式信息,例如文字的字體大小、是否是標(biāo)題、是否需要加粗顯示、是否是頁面的關(guān)鍵詞等,這些信息都有助于計算單詞在網(wǎng)頁中的重要程度。 HTML 等文檔不一樣, HTML 有一套自己的語法,需要通過不同的命令標(biāo)識符來表示不同的字體、顏色、位置等版式,在提取文本信息時需要把這些標(biāo)識符都過濾掉。 15 對于 doc、 PDF 這種由專業(yè)廠商提供的軟件生成的文檔,廠商一般都會提供相應(yīng)的文本提取接口。把這些文件抓取下來后,需要把這些文件中的文本信息提取出來。 } 內(nèi)容提取 搜索引擎建立網(wǎng)頁索引,處理的對象都是文本文件。//block until finish 阻塞到 quit()的執(zhí)行為止 responseData = replyreadAll()。eventLoop, SLOT(quit()))。 connect(amp。 QByteArray responseData。 // (proxy)。//代理服務(wù)器 (3128)。//創(chuàng)建一個代理 proxy = QNetworkProxy::HttpProxy。 其中,網(wǎng)頁特征可以是網(wǎng)頁的內(nèi)容特征也可以是網(wǎng)頁的鏈接結(jié)構(gòu)特征。根據(jù)種子樣本的獲取方式可分為: ( 1)預(yù)先給定的初始抓取種子樣本; ( 2)預(yù)先給定的網(wǎng)頁分類目錄和與分類目錄對應(yīng)的種子樣本 。 WEB爬蟲 1爬蟲 2爬蟲 3存儲體存儲信息過濾用戶界面 14 網(wǎng)絡(luò)爬蟲的具體實現(xiàn) 抓取目標(biāo)描述 現(xiàn)有的聚焦爬蟲 對抓取目標(biāo)的描述可分為基于目標(biāo)網(wǎng)頁特征、基于目標(biāo)數(shù)據(jù)模式和基于領(lǐng)域概念 3 種。 。 根據(jù)現(xiàn)實中不同用戶的實際上的各種需求,簡單實現(xiàn)主題爬蟲,網(wǎng)絡(luò)爬蟲需要達(dá)到如下幾個目標(biāo): ,客戶端向服務(wù)器發(fā)送自己設(shè)定好請求。這些線程相互通信以確定獲得新的工作,通過線程同步,各個 Spider 不會把已經(jīng)完成的工作當(dāng)做新的工作。任何一個工兵都不會在已經(jīng)排完雷、作好標(biāo)記的地區(qū)再 進(jìn)行排雷,也不可能幾個工兵聚集在同一點(diǎn)上排同一個雷(即線程同步)。這些軍人都是工兵,你給他們下達(dá)了排除某地地雷的任務(wù),他們得任務(wù)的具體內(nèi)容就是:每個人都要獨(dú)立地去發(fā)現(xiàn)地雷、排除地雷、作好標(biāo)記(即多線程)。當(dāng)你創(chuàng)建了一個多線程時,就相當(dāng)于建立了一支規(guī)定人數(shù)的軍隊。如果讓 Spider 僅僅等待一個網(wǎng)頁效率是十分低的,多線程能夠讓 Spider 同時等待大量的網(wǎng)頁。 例如,一個 Spider 程序需要下載十個網(wǎng)頁,要完成這個任務(wù), Spider 程序必須向服務(wù)器發(fā)出請求然后接收數(shù)據(jù),而 Spider 程序等待響應(yīng)是一個平頸。對于單 CPU 的 PC 來說,操作系統(tǒng)則會自動進(jìn)行任務(wù)切換,給人的感覺都是同時發(fā)生的,但其實這并不是真正的并發(fā)。多線程的另一個作用是用來提高系統(tǒng)的并發(fā)性。 在實際的應(yīng)用中,基于單線程的系統(tǒng)已經(jīng)無法滿足我們的需要。 12 第 三章 網(wǎng)絡(luò)爬蟲的設(shè)計與實現(xiàn) 多線程與線程同步 多線程是一個程序在同一時刻運(yùn)行超過一個任務(wù)的能力。 用戶可以將很多信號與單個插槽進(jìn)行連接,也可以將單個信號與很多插槽進(jìn)行連接,甚至將一個信號與另外一個信號相連接也是可能的,這時無論第一個信號什么時候發(fā)射,系統(tǒng)都將立刻發(fā)射第二個信號。插槽主要用于接收信號,但卻通常作為普通的對象成員函數(shù)。 所有從 QObject 或其子類(例如 Qwidget)派生的類都能夠包含信號和槽的機(jī)制。 信號與插槽機(jī)制是一種強(qiáng)有力的對象 間通信機(jī)制,因此完全可以取代原始的回調(diào)和消息映射機(jī)制。 QT 有著自身的特點(diǎn),不同于其他界面開發(fā)軟件,其中一個重要的地方,便是信號與插槽機(jī)制,因此精通 Qt 編程是基于對信號和插槽機(jī)制有著深入的了解;信號和插槽是一種高級接口,很好的解決了對象與對象之間的通信問題,也是 Qt 區(qū)別于其他工具包的重要地方。同時,QT 系統(tǒng)中有這樣一個類 Qproces 類,它為用戶提供了另外一種異步的進(jìn)程間通信機(jī)制,用于啟動一個外部的程序,同時用戶可以通過寫一個標(biāo)準(zhǔn)的輸入和讀取外部程序的標(biāo)準(zhǔn)輸出和錯誤碼來和它們進(jìn)行通信??蛻舳说闹饕ぷ髦皇窍⒌慕粨Q,通過使用 QCOP 通道來完成,而服務(wù)進(jìn)程的工作則比較簡單,僅僅需要做的是廣播 QCOP 消息給所有監(jiān)聽指定通道的應(yīng)用進(jìn)程,接著應(yīng)用進(jìn)程就可以通過原先設(shè)定的將特定的信號與特定的槽想關(guān)聯(lián),把一個插槽連接到一個負(fù)責(zé)接收的信號上面了,從而就對消息做出響應(yīng)并通過調(diào)用響應(yīng)函數(shù)進(jìn)行處理。 客戶與服務(wù)器之間的通信 是使用共享內(nèi)存的方法實現(xiàn)的,共享內(nèi)存是進(jìn)程間通訊的最高效的方式,這樣能使得通訊的數(shù)據(jù)傳輸能夠及時的送達(dá),提高整體速度。 Qt/Embedded 窗口系統(tǒng) 通常情況下每個 Qt/Embedded 窗口系統(tǒng)都可以包含一個或者多個進(jìn)程,作為服務(wù)器的一個服務(wù)進(jìn)程可以產(chǎn)生鼠標(biāo)和鍵盤事件并且可以分配客戶顯示區(qū)域。對于外部的輸入設(shè)備 Qt/Embedded 均把它們抽象成為鼠標(biāo)和鍵盤的輸入事件。 Qt/Embedded 架構(gòu) Qt/Embedded 以原始 Qt 為基礎(chǔ),并做了許多出色的調(diào)整以使它適用于嵌入式環(huán)境。 Qt 的特點(diǎn) 基本上, Qt Windows 平臺上的 MFC、 OWL、 VCL 、 AT L 是同類型的東西, 但是 Qt 具有下列優(yōu)點(diǎn): ( 1)優(yōu)良的跨平臺特性 Qt 支持 下列操作系統(tǒng): Microsoft Windows 95/9 Microsoft Windows NT、 Linux、 Solaris 、 SunOS 、 HPUX、 Digital UNIX 、 Irix 、 FreeBSD 、 BSD/OS、SCO 、 AIX 、 OS390 、 QNX 等等; ( 2)面向?qū)ο? Qt 的良好封裝機(jī)制使得 Qt 的模塊化程度非常高,可重用性較好,對于用戶 開發(fā)來說是非常方便的; ( 3)構(gòu)件支持 Qt 提供信號( signal)和槽( slot )概念,并支持對象之間在彼此不知道對方 信息的情況下進(jìn)行合作,這使得 Qt 非常適合于真正的構(gòu)件編程; ( 4)友好的聯(lián)機(jī)幫助 Qt 提供了大量的聯(lián)機(jī)參考文檔,有超文本 HTML 方式,也有 UNIX 幫助頁 Man 手冊頁和補(bǔ)充說明。 Qt 被用在 KDE 桌面環(huán)境、 Opera、 Google Earth、Skype、 Adobe Photoshop Album 和 VirtualBox 的開發(fā)中,是諾基亞( Nokia)的Qt Development Frameworks 部門的產(chǎn)品。 Qt 是一個多平臺的 C++ 圖形用戶界面應(yīng)用程序框架,它是基于面向?qū)ο蟮乃枷脒M(jìn)行相應(yīng)開發(fā)的,支持真正意義上的組件編程,可以為不同用戶提供華麗的用戶界面 [16]。同樣的情況也包括鏈接關(guān)鍵詞與實際內(nèi)容不符的情況。戴爾的首頁標(biāo)題中不但涵蓋了最重要的公司信息,而且還包括公司的主要產(chǎn)品,這就是核心關(guān)鍵詞,當(dāng)用“筆記本電腦”、“臺式電腦”這些關(guān)鍵詞在谷歌中進(jìn)行搜索時,戴爾公司的網(wǎng)頁都排在第一屏的前幾條位置。搜索引擎在進(jìn)行搜索的時候,搜索結(jié)果的內(nèi)容一般是網(wǎng)頁標(biāo)題、網(wǎng)頁摘要信息和鏈接,要引起用戶的關(guān)注,高度總結(jié) 了網(wǎng)頁內(nèi)容的標(biāo)題至關(guān)重要。在實際操作中,網(wǎng)頁標(biāo)題不宜過短或過長。所以應(yīng)當(dāng)確保在網(wǎng)站的標(biāo)題標(biāo)簽中包含了最重要的關(guān)鍵詞,即應(yīng)圍繞最重要的關(guān)鍵詞來決定網(wǎng)頁標(biāo)題的內(nèi)容。因為一般的公司名稱(或者品牌名稱)中可能不包含核心業(yè)務(wù)的關(guān)鍵詞,在搜索結(jié)果排名中將處于不利地位。當(dāng)然這種一般原則并不是固定不變的,在實際工作中可能會有一定的變化,但是無論如何變化,總體上仍然會遵照這種規(guī)律 [12]。 在網(wǎng)頁 HTML 代碼中,網(wǎng)頁標(biāo)題位于標(biāo)簽之間。 主題蜘蛛將網(wǎng)頁下載到本地后,需要使用基于內(nèi)容的主題判別方法計算該網(wǎng)頁的主題相關(guān)度值,主題相關(guān)度低于某一閾值的網(wǎng)頁被丟棄。 網(wǎng)絡(luò)爬蟲的主題相關(guān)度判斷 主題爬蟲的系統(tǒng)組成最初考慮是對頁面的過濾,不像普通爬蟲對所有頁面的鏈接進(jìn)行處理,先對頁面與受限領(lǐng)域的主題相關(guān)度進(jìn)行分析,只有當(dāng)其主題相關(guān)度符合要求時才處理該頁面中的鏈接,因為如果該頁面和本領(lǐng)域 比較相關(guān),它所包含的鏈接和領(lǐng)域相關(guān)的幾率也較大,這樣提高了爬行精度,雖然會遺漏少數(shù)頁面,但綜合效果是令人滿意的。在超文本的結(jié)構(gòu)頁面中,圖像標(biāo)記中往往存放著該圖像的替換信息。便于在建立索引的過程中提高這些詞匯的相關(guān)度。 信息網(wǎng)頁中的 Meta 標(biāo)記都用來標(biāo)注一些非常 具有顯示性的信息。 由于網(wǎng)頁中存在這許多無用單詞,例如 “啊 ”, “的 ”等。這些超鏈接 反映了收集到的信息之間的空間結(jié)構(gòu)。還有些搜索引擎在建立索引時,要同時考慮超文本中不同標(biāo)記所表示的含義,如粗體、加大字體顯示的東西往往都比較重要。 7 由于漢文字符很多,處理比較復(fù)雜,中文詞處理不容易。索引算法對索引器的性能有很大的影響。索引器可以使用集中式索引算法以及分布式索引算法。單索引項對于英文來講就是英語單詞,比較容易提取 ,因為單詞和單詞之間有天然的分隔符即空格 。 內(nèi)容索引項:是用來反映文檔內(nèi)容的項,如關(guān)鍵詞及其權(quán)重、短語、詞、字等等。 一、索引器: 索引器的功能是理解搜索器所搜集的信息,從而從中抽取出索引項,用來表示文檔以及生成文檔庫的索引表。這兩個部分的算法是緊密相關(guān)的。 對抓取目標(biāo)的描述和定義是決定網(wǎng)頁分析算法與 URL 搜索策略如何來制訂的基礎(chǔ)。另外,所有被爬蟲抓取的網(wǎng)頁將會被系統(tǒng)所存貯,進(jìn)行一定的分析、過濾,并建立索引,以便之后進(jìn)行查詢和檢 索;對于聚焦爬蟲來說,在這一過程中所得到的分析結(jié)果還可能對以后的抓取過程給出反饋和指導(dǎo)。聚焦爬蟲的工作流程比較復(fù)雜,需要根據(jù)一定的網(wǎng)頁分析算法來過濾掉與主題無關(guān)的鏈接,保留有用的鏈接并將其放入等待抓取的 URL 隊列中。 6 聚焦爬蟲的工作原理 網(wǎng)絡(luò)爬蟲是一個用來自動提取網(wǎng)頁的程序,它為搜索引擎從萬維網(wǎng)下載網(wǎng)頁,是搜索引擎的重要 組成部分。另外一種方法是將廣度優(yōu)先搜索與網(wǎng)頁過濾技術(shù)結(jié)合使用,先用 廣度優(yōu)先策略 抓取網(wǎng)頁,再將其中無關(guān)的網(wǎng)頁過濾掉。也有很多研究將廣度優(yōu)先搜索策略應(yīng)用于聚焦爬蟲中。這是最常用的方式,因為這個方法可以讓網(wǎng)絡(luò)蜘蛛并行處理,提高其抓取速度。深度優(yōu)先在很多情況下會導(dǎo)致爬蟲的陷入 (trapped)問題,目前常見的是廣度優(yōu)先和最佳優(yōu)先方法。又 由于搜索引擎有大量的用戶,有很好的經(jīng)濟(jì)價值,所以引起了世界各國計算機(jī)科學(xué)界和信息產(chǎn)業(yè)界的高度關(guān)注,目前的研究、開發(fā)十分活躍,并出現(xiàn)了很多值得注意的動向。搜索引擎己成為一個新的研究、開發(fā)領(lǐng)域。 搜索引擎的發(fā)展面臨著兩大難題:一是如何跟上 Inter 的發(fā)展速度,二是如何為用戶提供更精確的查詢結(jié)果。其次,不能聯(lián)想到關(guān)鍵字的同義詞。 網(wǎng)絡(luò)爬蟲的發(fā)展趨勢 目前,大多數(shù)的搜索引擎都是基于關(guān)鍵詞的搜索引擎。這類爬蟲可以部署很多,而且可以很有侵略性。 2,客戶端:很適合部署定題爬蟲,或者叫聚焦爬蟲。 網(wǎng)絡(luò)爬蟲 的分類 網(wǎng)絡(luò)爬蟲種類繁多,如果按照部署在哪里分,可以分成: 1,服務(wù)器側(cè):一般是一個多線程程序,同時下載多個目標(biāo) HTML,可以用PHP, Java, Python 等做,一般綜合搜索引擎的爬蟲這樣做。國內(nèi)的百度也屬于這一類(注),搜狐和新浪用的就是它的技術(shù)。 隨著互聯(lián)網(wǎng)規(guī)模的急劇膨脹,一家搜索引擎光靠自己單打獨(dú)斗已無法適應(yīng)目前的市場狀況,因此現(xiàn)在搜索引擎之間開始出現(xiàn)了分工協(xié)作 ,并有了專業(yè)的搜索引 擎技術(shù)和搜索數(shù)據(jù)庫服務(wù)提供商。目前,互聯(lián)網(wǎng)上有名有姓的搜索引擎已 達(dá)數(shù)百家,其檢索的信息量也與從前不可同日而語。同年 4月,斯坦福( Stanford)大學(xué)的兩名博士生, David Filo 和美籍華人楊致遠(yuǎn)( Gerry Yang)共同創(chuàng)辦了超級目錄索引 Yahoo,并成功地使搜索引擎的概念深入人心。而 RBSE 是第一個在搜索
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1