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

正文內(nèi)容

分布式網(wǎng)絡(luò)爬蟲-總體設(shè)計(jì)(完整版)

2025-08-04 20:52上一頁面

下一頁面
  

【正文】 歸和規(guī)范化計(jì)算,得到每個網(wǎng)頁的重要度評價(jià)。該算法的設(shè)計(jì)和實(shí)現(xiàn)相對簡單。最新的、精選過的例子,webmagicscriptsWebMagic對于爬蟲規(guī)則腳本化的一些嘗試,目標(biāo)是讓開發(fā)者脫離Java語言,來進(jìn)行簡單、快速的開發(fā)。主要部分WebMagic主要包括兩個包,這兩個包經(jīng)過廣泛實(shí)用,已經(jīng)比較成熟:webmagiccorewebmagiccore是WebMagic核心部分,只包含爬蟲基本模塊和基本抽取器。核心部分(webmagiccore)是一個精簡的、模塊化的爬蟲實(shí)現(xiàn),而擴(kuò)展部分則包括一些便利的、實(shí)用性的功能。 Web商業(yè)化至今,搜索引擎始終保持著網(wǎng)絡(luò)上被使用最多的服務(wù)項(xiàng)目的地位,然而,隨著網(wǎng)上內(nèi)容的爆炸式增長和內(nèi)容形式花樣的不斷翻新,搜索引擎越來越不能滿足挑剔的網(wǎng)民們的各種信息需求。 Deep Web 爬蟲Web 頁面按存在方式可以分為表層網(wǎng)頁(Surface Web)和深層網(wǎng)頁(Deep Web,也稱 Invisible Web Pages 或 Hidden Web)。 由于商業(yè)原因,它們的技術(shù)細(xì)節(jié)很少公布出來??刂破鞯闹饕ぷ魇秦?fù)責(zé)給多線程中的各個爬蟲線程分配工作任務(wù)。但是,這些通用性搜索引擎也存在著一定的局限性,如:(1)不同領(lǐng)域、不同背景的用戶往往具有不同的檢索目的和需求,通用搜索引擎所返回的結(jié)果包含大量用戶不關(guān)心的網(wǎng)頁。 把互聯(lián)網(wǎng)比喻成一個蜘蛛網(wǎng),那么Spider就是在網(wǎng)上爬來爬去的蜘蛛。網(wǎng)絡(luò)蜘蛛是通過網(wǎng)頁的鏈接地址來尋找網(wǎng)頁,從網(wǎng)站某一個頁面(通常是首頁)開始,讀取網(wǎng)頁的內(nèi)容,找到在網(wǎng)頁中的其它鏈接地址,然后通過這些鏈接地址尋找下一個網(wǎng)頁,這樣一直循環(huán)下去,直到把這個網(wǎng)站所有的網(wǎng)頁都抓取完為止。(2)通用搜索引擎的目標(biāo)是盡可能大的網(wǎng)絡(luò)覆蓋率,有限的搜索引擎服務(wù)器資源與無限的網(wǎng)絡(luò)數(shù)據(jù)資源之間的矛盾將進(jìn)一步加深。解析器的主要工作是下載網(wǎng)頁,進(jìn)行頁面的處理,主要是將一些JS腳本標(biāo)簽、CSS代碼內(nèi)容、空格字符、HTML標(biāo)簽等內(nèi)容處理掉,爬蟲的基本工作是由解析器完成。 這類網(wǎng)絡(luò)爬蟲的爬行范圍和數(shù)量巨大,對于爬行速度和存儲空間要求較高,對于爬行頁面的順序要求相對較低,同時(shí)由于待刷新的頁面太多,通常采用并行工作方式,但需要較長時(shí)間才能刷新一次頁面。 表層網(wǎng)頁是指傳統(tǒng)搜索引擎可以索引的頁面,以超鏈接可以到達(dá)的靜態(tài)網(wǎng)頁為主構(gòu)成的 Web 頁面。 搜索引擎的發(fā)展面臨著兩大難題:一是如何跟上Internet的發(fā)展速度,二是如何為用戶提供更精確的查詢結(jié)果。WebMagic的架構(gòu)設(shè)計(jì)參照了Scrapy,目標(biāo)是盡量的模塊化,并體現(xiàn)爬蟲的功能特點(diǎn)。WebMagiccore的目標(biāo)是成為網(wǎng)頁爬蟲的一個教科書般的實(shí)現(xiàn)。同時(shí)強(qiáng)調(diào)腳本的共享。在目前為覆蓋盡可能多的網(wǎng)頁,一般使用廣度優(yōu)先搜索方法。PageRank算法雖然考慮了用戶訪問行為的隨機(jī)性和Sink網(wǎng)頁的存在,但忽略了絕大多數(shù)用戶訪問時(shí)帶有目的性,即網(wǎng)頁和鏈接與查詢主題的相關(guān)性。文獻(xiàn)[18]討論了在分布式情況下,通過對同一個域名下不同主機(jī)、服務(wù)器的IP地址進(jìn)行站點(diǎn)劃分,構(gòu)造站點(diǎn)圖,利用類似PageRank的方法評價(jià)SiteRank。已經(jīng)有人實(shí)現(xiàn)了塊級別的PageRank和HITS算法,并通過實(shí)驗(yàn)證明,效率和準(zhǔn)確率都比傳統(tǒng)的對應(yīng)算法要好。2) 超文本分類和聚類算法根據(jù)網(wǎng)頁鏈接網(wǎng)頁的相關(guān)類型對網(wǎng)頁進(jìn)行分類,依靠相關(guān)聯(lián)的網(wǎng)頁推測該網(wǎng)頁的類型 爬行策略下述的三種網(wǎng)絡(luò)特征,造成了設(shè)計(jì)網(wǎng)頁爬蟲抓取策略變得很難:216。如果這里存著四種分類方式,三種縮略圖方式,兩種文件格式,和一個禁止用戶提供內(nèi)容的選項(xiàng),那么,同樣的內(nèi)容就可以通過48種方式訪問。這就要求一個公共標(biāo)準(zhǔn)來區(qū)分網(wǎng)頁的重要程度,一個頁面的重要程度與他自身的質(zhì)量有關(guān),與按照鏈接數(shù)、訪問數(shù)得出的受歡迎程度有關(guān),甚至與他本身的網(wǎng)址(后來出現(xiàn)的把搜索放在一個頂級域名或者一個固定頁面上的垂直搜索)有關(guān)。他們發(fā)現(xiàn)廣度優(yōu)先會較早的抓到PageRank高的頁面(但是他們沒有采用其他策略進(jìn)行研究)。比較的基礎(chǔ)是真實(shí)頁面pageRank值和計(jì)算出來的pageRank值的接近程度。為了僅僅得到html的資源,一個爬蟲可以首先做一個 head的請求,以在使用request方法獲取所有的資源之前,決定這個網(wǎng)絡(luò)文件的類型。一些路徑檢索的爬蟲也被稱為收割機(jī)軟件,因?yàn)樗麄兺ǔS糜谑崭罨蛘呤占械膬?nèi)容,可能是從特定的頁面或者主機(jī)收集相冊的照片。一個聚焦查詢的表現(xiàn)的好壞主要依賴于查詢主題內(nèi)容的豐富程度,通常還會依賴頁面查詢引擎提供的查詢起點(diǎn)。第三代檢索技術(shù)將建立在人機(jī)巧妙的聯(lián)系的基礎(chǔ)上。他們指出網(wǎng)絡(luò)爬行的問題就相當(dāng)于多個隊(duì)列,一個投票系統(tǒng);這里,爬蟲是服務(wù)器,不同的站點(diǎn)是隊(duì)列。(兩種情況下,爬蟲的重新抓取都可以采用隨機(jī)方式,或者固定的順序)Cho和GarciaMolina證明了一個出人意料的結(jié)果。(Cho和GarciaMolina,2003a)指出指數(shù)變化是描述頁面變化的好方法,同時(shí)(Ipeirotis等人,2005)指出了怎么使用統(tǒng)計(jì)工具去發(fā)現(xiàn)適合這些變化的參數(shù)。216。最近的商業(yè)搜索軟件,如Ask Jeeves, “Crawldelay”參數(shù)來指明請求之間的延遲。訪問記錄顯示已知爬蟲的訪問間隔從20秒鐘到34分鐘不等。在啟動爬蟲之前,我們需要使用一個PageProcessor創(chuàng)建一個Spider對象,然后使用run()進(jìn)行啟動。 try { //添加到JMT監(jiān)控中 ().register(oschinaSpider)。entrytitle public39??陀^的說,它比XPath寫起來要簡單一些,但是如果寫復(fù)雜一點(diǎn)的抽取規(guī)則,就相對要麻煩一點(diǎn)。 具體代碼實(shí)現(xiàn) package 。 // 設(shè)置csdn用戶名 private static int size = 0。]).links()// 限定其他列表頁獲取區(qū)域 .regex(/ + username + /article/list/\\d+) .replace(/ + username + /, + username + /)// 巧用替換給把相對url轉(zhuǎn)換成絕對url .all())。]/a/text()).get())。]/text()).get())。]/label/span/text()).all()))。]/span[class=39。 boolean flag = false。 // 從用戶博客首頁開始抓,開啟5個線程,啟動爬蟲 (new CsdnBlogPageProcessor()).addUrl( + username).thread(5).run()。import 。 public static void main( String[] args ) { //Spider是爬蟲的入口類,addurl為入口url Spider oschinaSpider = (new App()).addUrl() //Pipeline是結(jié)果輸出和持久化的接口,這里ConsolePipeline表示結(jié)果輸出到控制臺 .addPipeline(new ConsolePipeline())。 if (()5) { (()1)。link_title39。由于其社區(qū)版的性能卓越,搭配 PHP 和 Apache 可組成良好的開發(fā)環(huán)境。顯示“mysql”表示進(jìn)入MySQL,可用TSQL語句對數(shù)據(jù)庫執(zhí)行各種操作。// 編號 private String title。 //文字內(nèi)容 public String getContent() { return content。 } public String getTags() { return tags。 } public int getCopyright() { return copyright。useUnicode=trueamp。 (1, ())。 (9, ())。 } catch (SQLException e) { ()。 (3,())。/*此處為添加要連接數(shù)據(jù)庫的信息,3306是接口,在使用WorkBench時(shí)有過設(shè)置,3306后邊是句庫名稱,下邊的’user=……’填寫數(shù)據(jù)庫的訪問密碼*/ conn = (url)。 } Override public String toString() { return CsdnBlog [key= + key + , title= + title + , content= + content + ,date= + date + , tags= + tags + , category= + category + , view= + view + , ments= + ments + , copyright= + copyright + ]。 } public String getCategory() { return category。 } public int getKey() { return key。// 日期 private String tags。它是著名的數(shù)據(jù)庫設(shè)計(jì)工具DBDesigner4的繼任者。首先解壓到G:\\文件下,打開命令提示符以管理員身份運(yùn)行,cd到G:\\bin下命令為:cd /d G:\\bin圖16 MySQL安裝1然后安裝MySQLmysqld install,運(yùn)行命令后MySQL安裝成功。 } } public Site getSite() { return site。//用于獲取所有滿足(://blog\\.csdn\\.net/u012012240/article/month/2016/08/\\d+)這個正則表達(dá)式的鏈接 //區(qū)分是列表頁面還是信息頁面 if (().regex(article/list).match()) { ListString links = ().xpath([class=39。 //設(shè)置線程數(shù) //(5)。import 。 (【爬蟲結(jié)束】共抓取 + size + 篇文章,耗時(shí)約 + ((endTime startTime) / 1000) + 秒,已保存到數(shù)據(jù)庫,請查收!)。 } else { flag = true。]).regex(\\((\\d+)\\)).get()))。article_r39。article_l39。article_content39。// 文章數(shù)量加1 // 用CsdnBlog類來存抓取到的數(shù)據(jù),方便存入數(shù)據(jù)庫 CsdnBlog csdnBlog = new CsdnBlog()。 public Site getSite() { return site。import 。(().links().regex((://github\\./\\w+/\\w+)).all())。entrytitle public39。 ()。表1 爬蟲函數(shù)及其功能表方法說明示例create(PageProcessor)創(chuàng)建Spider(new GithubRepoProcessor())addUrl(String…)添加初始的URLspider .addUrl()addRequest(Request...)添加初始的Requestspider .addRequest()thread(n)開啟n個線程(5)run()啟動,會阻塞當(dāng)前線程執(zhí)行()start()/runAsync()異步啟動,當(dāng)前線程繼續(xù)執(zhí)行()stop()停止爬蟲()test(String)抓取一個頁面進(jìn)行測試spider .test()addPipeline(Pipeline)添加一個Pipeline,一個Spider可以有多個Pipelinespider .addPipeline(new ConsolePipeline())setScheduler(Scheduler)設(shè)置Scheduler,一個Spider只能有個一個Scheduler(new RedisScheduler())setDownloader(Downloader)設(shè)置Downloa
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1