出版時(shí)間:2010-10 出版社:清華大學(xué) 作者:羅剛//王振東 頁(yè)數(shù):346
Tag標(biāo)簽:無(wú)
前言
當(dāng)你在網(wǎng)上沖浪時(shí),你是否知道還有一類特殊的網(wǎng)絡(luò)用戶也在互聯(lián)網(wǎng)上默默地工作著,它們就是網(wǎng)絡(luò)爬蟲(chóng)。這些網(wǎng)絡(luò)爬蟲(chóng)按照設(shè)計(jì)者預(yù)定的方式,在網(wǎng)絡(luò)中穿梭,同時(shí)自動(dòng)收集有用的信息,進(jìn)行分類和整理,將整理結(jié)果提供給用戶,以方便用戶查找他們感興趣的內(nèi)容。由于網(wǎng)絡(luò)爬蟲(chóng)的實(shí)用性,引起了很多程序員,特別是Web程序員的興趣。但是大多數(shù)網(wǎng)絡(luò)爬蟲(chóng)的開(kāi)發(fā)原理與技巧在專業(yè)的公司內(nèi)部都秘而不宣,至今仍然缺少理論與實(shí)踐相結(jié)合的專門(mén)介紹網(wǎng)絡(luò)爬蟲(chóng)的書(shū)籍。本書(shū)將彌補(bǔ)這個(gè)問(wèn)題,嘗試?yán)碚撆c實(shí)踐相結(jié)合,深入透徹地講解網(wǎng)絡(luò)爬蟲(chóng)的原理,并且輔以相關(guān)代碼作為參考。本書(shū)相關(guān)的代碼在附帶光盤(pán)中可以找到。本書(shū)的兩位主要作者在搜索引擎領(lǐng)域都有豐富的理論和實(shí)踐經(jīng)驗(yàn)。同時(shí),還有多個(gè)程序員幫忙開(kāi)發(fā)或編寫(xiě)了代碼實(shí)現(xiàn),例如Java實(shí)現(xiàn)異步I/O或?qū)DF文件的處理等。由于作者的日常工作繁忙,做得不夠的地方敬請(qǐng)諒解。作者羅剛在參加編寫(xiě)本書(shū)之前,還獨(dú)立撰寫(xiě)過(guò)《自己動(dòng)手寫(xiě)搜索引擎》一書(shū),但存在講解不夠細(xì)致、知識(shí)點(diǎn)不夠深入等問(wèn)題。此次與王振東合著本書(shū),相對(duì)于上一本書(shū)而言,對(duì)讀者反饋有更高的預(yù)期。因?yàn)樽髡呦嘈湃缦碌募僭O(shè):如果能夠與更多的人更好地合作,事情往往能做得更好。本書(shū)從基本的爬蟲(chóng)原理開(kāi)始講解,通過(guò)介紹優(yōu)先級(jí)隊(duì)列、寬度優(yōu)先搜索等內(nèi)容引領(lǐng)讀者入門(mén);之后根據(jù)當(dāng)前風(fēng)起云涌的云計(jì)算熱潮,重點(diǎn)講述了云計(jì)算的相關(guān)內(nèi)容及其在爬蟲(chóng)中的應(yīng)用,以及帶偏好的爬蟲(chóng)、信息抽取、鏈接分析等內(nèi)容;為了能夠讓讀者更深入地了解爬蟲(chóng),本書(shū)在最后兩章還介紹了有關(guān)爬蟲(chóng)的數(shù)據(jù)挖掘的內(nèi)容。由于搜索引擎相關(guān)領(lǐng)域也正在快速發(fā)展中,而且由于篇幅的限制,有些不成熟的內(nèi)容,沒(méi)有能夠在本書(shū)體現(xiàn),例如有關(guān)"暗網(wǎng)"的內(nèi)容。隨著技術(shù)的不斷發(fā)展,我們將在今后的版本中加入這些內(nèi)容。
內(nèi)容概要
本書(shū)介紹了網(wǎng)絡(luò)爬蟲(chóng)開(kāi)發(fā)中的關(guān)鍵問(wèn)題與java實(shí)現(xiàn)。主要包括從互聯(lián)網(wǎng)獲取信息與提取信息和對(duì)web信息挖掘等內(nèi)容。本書(shū)在介紹基本原理的同時(shí)注重輔以具體代碼實(shí)現(xiàn)來(lái)幫助讀者加深理解,書(shū)中部分代碼甚至可以直接使用。本書(shū)適用于有java程序設(shè)計(jì)基礎(chǔ)的開(kāi)發(fā)人員。同時(shí)也可以作為計(jì)算機(jī)相關(guān)專業(yè)本科生或研究生的參考教材。
書(shū)籍目錄
第1篇 自己動(dòng)手抓取數(shù)據(jù)第1章 全面剖析網(wǎng)絡(luò)爬蟲(chóng) 1.1 抓取網(wǎng)頁(yè) 1.1.1 深入理解url 1.1.2
通過(guò)指定的url抓取網(wǎng)頁(yè)內(nèi)容 1.1.3 java網(wǎng)頁(yè)抓取示例 1.1.4 處理http狀態(tài)碼 1.2 寬度優(yōu)先爬蟲(chóng)和帶偏好的爬蟲(chóng)
1.2.1 圖的寬度優(yōu)先遍歷 1.2.2 寬度優(yōu)先遍歷互聯(lián)網(wǎng) 1.2.3 java寬度優(yōu)先爬蟲(chóng)示例 1.2.4 帶偏好的爬蟲(chóng)
1.2.5 java帶偏好的爬蟲(chóng)示例 1.3 設(shè)計(jì)爬蟲(chóng)隊(duì)列 1.3.1 爬蟲(chóng)隊(duì)列 1.3.2 使用berkeley db構(gòu)建爬蟲(chóng)隊(duì)列
1.3.3 使用berkeley db構(gòu)建爬蟲(chóng)隊(duì)列示例 1.3.4 使用布隆過(guò)濾器構(gòu)建visited表 1.3.5
詳解heritrix爬蟲(chóng)隊(duì)列 1.4 設(shè)計(jì)爬蟲(chóng)架構(gòu) .1.4.1 爬蟲(chóng)架構(gòu) 1.4.2 設(shè)計(jì)并行爬蟲(chóng)架構(gòu) 1.4.3
詳解heritrix爬蟲(chóng)架構(gòu) 1.5 使用多線程技術(shù)提升爬蟲(chóng)性能 1.5.1 詳解java多線程 1.5.2 爬蟲(chóng)中的多線程
1.5.3 一個(gè)簡(jiǎn)單的多線程爬蟲(chóng)實(shí)現(xiàn) 1.5.4 詳解heritrix多線程結(jié)構(gòu) 1.6 本章小結(jié)第2章 分布式爬蟲(chóng) 2.1
設(shè)計(jì)分布式爬蟲(chóng) 2.1.1 分布式與云計(jì)算 2.1.2 分布式與云計(jì)算技術(shù)在爬蟲(chóng)中的應(yīng)用——淺析google的云計(jì)算架構(gòu) 2.2
分布式存儲(chǔ) 2.2.1 從ralation_db到key/value存儲(chǔ) 2.2.2 consistent hash算法 2.2.3
consistent hash代碼實(shí)現(xiàn) 2.3 google的成功之道——gfs 2.3.1 gfs詳解 2.3.2
開(kāi)源gfs——hdfs 2.4 google網(wǎng)頁(yè)存儲(chǔ)秘訣——bigtable 2.4.1 詳解bigtable 2.4.2
開(kāi)源bigtable——hbase 2.5 google的成功之道——mapreduce算法 2.5.1 詳解mapreduce算法
2.5.2 mapreduce容錯(cuò)處理 2.5.3 mapreduce實(shí)現(xiàn)架構(gòu) 2.5.4 hadoop中的mapreduce簡(jiǎn)介
2.5.5 wordcount例子的實(shí)現(xiàn) 2.6 nutch中的分布式 2.6.1 nutch爬蟲(chóng)詳解 2.6.2
nutch中的分布式 2.7 本章小結(jié)第3章 爬蟲(chóng)的“方方面面” 3.1 爬蟲(chóng)中的“黑洞” 3.2 限定爬蟲(chóng)和主題爬蟲(chóng) 3.2.1
理解主題爬蟲(chóng) 3.2.2 java主題爬蟲(chóng) 3.2.3 理解限定爬蟲(chóng) 3.2.4 java限定爬蟲(chóng)示例 3.3 有“道德”的爬蟲(chóng)
3.4 木章小結(jié)第2篇 自己動(dòng)手抽取web內(nèi)容第4章 “處理”html頁(yè)面 4.1 征服正則表達(dá)式 4.1.1 學(xué)習(xí)正則表達(dá)式
4.1.2 java正則表達(dá)式 4.2 抽取html正文 4.2.1 了解htmlparser 4.2.2 使用正則表達(dá)式抽取示例
4.3 抽取正文 4.4 從javascript中抽取信息 4.4.1 javascript抽取方法 4.4.2
javascript抽取示例 4.5本章小結(jié)第5章 非html正文抽取 5.1 抽取pdf文件 5.1.1 學(xué)習(xí)pdfbox
5.1.2 使用pdfbox抽取示例 5.1.3 提取pdf文件標(biāo)題 5.1.4 處理pdf格式的公文 5.2 抽取office文檔
5.2.1 學(xué)習(xí)poi 5.2.2 使用poi抽取word示例 5.2.3 使用poi抽取ppt示例 5.2.4
使用poi抽取excel示例 5.3 抽取rtf 5.3.1 開(kāi)源rtf文件解析器 5.3.2 實(shí)現(xiàn)一個(gè)rtf文件解析器 5.3.3
解析rtf示例 5.4 本章小結(jié)第6章 多媒體抽取 6.1 抽取視頻 6.1.1 抽取視頻關(guān)鍵幀 6.1.2 java視頻處理框架
6.1.3 java視頻抽取示例 6.2 音頻抽取 6.2.1 抽取音頻 6.2.2 學(xué)習(xí)java音頻抽取技術(shù) 6.3 本章小結(jié)第7章
去掉網(wǎng)頁(yè)中的“噪聲” 7.1 “噪聲”對(duì)網(wǎng)頁(yè)的影響 7.2 利用“統(tǒng)計(jì)學(xué)”消除“噪聲” 7.2.1 網(wǎng)站風(fēng)格樹(shù)
7.2.2“統(tǒng)計(jì)學(xué)去噪”java實(shí)現(xiàn) 7.3 利用“視覺(jué)”消除“噪聲” 7.3.1 “視覺(jué)”與“噪聲” 7.3.2
“視覺(jué)去噪”java實(shí)現(xiàn) 7.4 本章小結(jié)第3篇 自己動(dòng)手挖掘web數(shù)據(jù)第8章 分析web圖 8.1 存儲(chǔ)web“圖” 8.2
利用web“圖”分析鏈接 8.3 google的秘密——pagerank 8.3.1 深入理解pagerank算法 8.3.2
pagerank算法的java實(shí)現(xiàn) 8.3.3 應(yīng)用pagerank進(jìn)行鏈接分析 8.4 pagerank的兄弟hits 8.4.1
深入理解hits算法 8.4.2 hits算法的java實(shí)現(xiàn) 8.4.3 應(yīng)用hits進(jìn)行鏈接分析 8.5
pagerank與hits的比較 8.6 本章小結(jié)第9章 去掉重復(fù)的“文檔” 9.1 何為“重復(fù)”的文檔 9.2
去除“重復(fù)”文檔——排重 9.3 利用“語(yǔ)義指紋”排重 9.3.1 理解“語(yǔ)義指紋” 9.3.2 “語(yǔ)義指紋”排重的java實(shí)現(xiàn)
9.4 simhash排重 9.4.1 理解simhash 9.4.2 simhash排重的java實(shí)現(xiàn) 9.5 分布式文檔排重
9.6 本章小結(jié)第10章 分類與聚類的應(yīng)用 10.1 網(wǎng)頁(yè)分類 10.1.1 收集語(yǔ)料庫(kù) 10.1.2 選取網(wǎng)頁(yè)的“特征”
10.1.3 使用支持向量機(jī)進(jìn)行網(wǎng)頁(yè)分類 10.1.4 利用url地址進(jìn)行網(wǎng)頁(yè)分類 10.1.5 使用adaboost進(jìn)行網(wǎng)頁(yè)分類
10.2 網(wǎng)頁(yè)聚類 10.2.1 深入理解dbscan算法 10.2.2 使用dbscan算法聚類實(shí)例 10.3 本章小結(jié)
章節(jié)摘錄
插圖:代表主機(jī)ftp.yoyodyne.com的根目錄。爬蟲(chóng)最主要的處理對(duì)象就是URL,它根據(jù)URL地址取得所需要的文件內(nèi)容,然后對(duì)它進(jìn)行進(jìn)一步的處理。因此,準(zhǔn)確地理解URL對(duì)理解網(wǎng)絡(luò)爬蟲(chóng)至關(guān)重要。從下一節(jié)開(kāi)始,我們將詳細(xì)地講述如何根據(jù)URL地址來(lái)獲得網(wǎng)頁(yè)內(nèi)容。1.1.2 通過(guò)指定的URL抓取網(wǎng)頁(yè)內(nèi)容上一節(jié)詳細(xì)介紹了URL的構(gòu)成,這一節(jié)主要闡述如何根據(jù)給定的URL來(lái)抓取網(wǎng)頁(yè)。所謂網(wǎng)頁(yè)抓取,就是把URL地址中指定的網(wǎng)絡(luò)資源從網(wǎng)絡(luò)流中讀取出來(lái),保存到本地。類似于使用程序模擬IE瀏覽器的功能,把URL作為HTTP請(qǐng)求的內(nèi)容發(fā)送到服務(wù)器端,然后讀取服務(wù)器端的響應(yīng)資源。Java語(yǔ)言是為網(wǎng)絡(luò)而生的編程語(yǔ)言,它把網(wǎng)絡(luò)資源看成是一種文件,它對(duì)網(wǎng)絡(luò)資源的訪問(wèn)和對(duì)本地文件的訪問(wèn)一樣方便。它把請(qǐng)求和響應(yīng)封裝為流。因此我們可以根據(jù)相應(yīng)內(nèi)容,獲得響應(yīng)流,之后從流中按字節(jié)讀取數(shù)據(jù)。例如,java.net.URL類可以對(duì)相應(yīng)的Web服務(wù)器發(fā)出請(qǐng)求并且獲得響應(yīng)文檔。
編輯推薦
《自己動(dòng)手寫(xiě)網(wǎng)絡(luò)爬蟲(chóng)》是國(guó)內(nèi)第一本專門(mén)講解網(wǎng)絡(luò)爬蟲(chóng)開(kāi)發(fā)的書(shū)籍,介紹如何應(yīng)用云計(jì)算架構(gòu)開(kāi)發(fā)分布式爬蟲(chóng)。獵兔搜索工程師多年項(xiàng)目經(jīng)驗(yàn)總結(jié)深入介紹Web數(shù)據(jù)挖掘?qū)崿F(xiàn)過(guò)程光盤(pán)中提供了高效的代碼解決方案案例均使用流行的Java語(yǔ)言編寫(xiě)
圖書(shū)封面
圖書(shū)標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
自己動(dòng)手寫(xiě)網(wǎng)絡(luò)爬蟲(chóng) PDF格式下載
250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版