內容簡介
《自己動手寫網路爬蟲》介紹了網路爬蟲開發中的關鍵問題與Java實現。主要包括從網際網路獲取信息與提取信息和對Web信息挖掘等內容。《自己動手寫網路爬蟲》在介紹基本原理的同時注重輔以具體代碼實現來幫助讀者加深理解,書中部分代碼甚至可以直接使用。《自己動手寫網路爬蟲》此書代碼清晰,但是對初學者不太合適,因為完全沒有介紹開發平台和配置環境,以及在程式中所用到的jar包,初學者的動手能力有限,使得程式很難調通,高手倒是可以挑戰一下。
圖書目錄
第1篇自己動手抓取數據
第1章全面剖析網路爬蟲3
1.1抓取網頁
1.1.1深入理解url
1.1.2通過指定的url抓取網頁內容
1.1.3java網頁抓取示例
1.1.4處理http狀態碼
1.2寬度優先爬蟲和帶偏好的爬蟲
1.2.1圖的寬度優先遍歷
1.2.2寬度優先遍歷網際網路
1.2.3java寬度優先爬蟲示例
1.2.4帶偏好的爬蟲
1.2.5java帶偏好的爬蟲示例
1.3設計爬蟲佇列
1.3.1爬蟲佇列
1.3.2使用BerkeleyDB構建爬蟲佇列
1.3.3使用berkeleydb構建爬蟲佇列示例
1.3.4使用布隆過濾器構建visited表
1.3.5詳解Heritrix爬蟲佇列
1.4設計爬蟲架構.
1.4.1爬蟲架構
1.4.2設計並行爬蟲架構
1.4.3詳解heritrix爬蟲架構
1.5使用多執行緒技術提升爬蟲性能
1.5.1詳解java多執行緒
1.5.2爬蟲中的多執行緒
1.5.3一個簡單的多執行緒爬蟲實現
1.5.4詳解heritrix多執行緒結構
1.6本章小結
第2章分散式爬蟲69
2.1設計分散式爬蟲
2.1.1分散式與雲計算
2.1.2分散式與雲計算技術在爬蟲中的套用――淺析google的雲計算架構2.2分散式存儲
2.2.1從ralation_db到key/value存儲
2.2.2consistenthash算法
2.2.3consistenthash代碼實現
2.3google的成功之道――gfs
2.3.1gfs詳解
2.3.2開源gfs――hdfs
2.4google網頁存儲秘訣――bigtable
2.4.1詳解bigtable
2.4.2開源bigtable――hbase
2.5google的成功之道――mapreduce算法
2.5.1詳解mapreduce算法
2.5.2mapreduce容錯處理
2.5.3mapreduce實現架構
2.5.4hadoop中的mapreduce簡介
2.5.5wordcount例子的實現
2.6nutch中的分散式
2.6.1nutch爬蟲詳解
2.6.2nutch中的分散式
2.7本章小結
第3章爬蟲的“方方面面”121
3.1爬蟲中的“黑洞”
3.2限定爬蟲和主題爬蟲
3.2.1理解主題爬蟲
3.2.2java主題爬蟲
3.2.3理解限定爬蟲
3.2.4java限定爬蟲示例
3.3有“道德”的爬蟲
3.4木章小結
第2篇自己動手抽取web內容
第4章“處理”html頁面159
4.1征服正則表達式
4.1.1學習正則表達式
4.1.2java正則表達式
4.2抽取html正文
4.2.1了解htmlparser
4.2.2使用正則表達式抽取示例
4.3抽取正文
4.4從javascript中抽取信息
4.4.1javascript抽取方法
4.4.2javascript抽取示例
4.5本章小結
第5章非html正文抽取201
5.1抽取pdf檔案
5.1.1學習pdfbox
5.1.2使用pdfbox抽取示例
5.1.3提取pdf檔案標題
5.1.4處理pdf格式的公文
5.2抽取office文檔
5.2.1學習poi
5.2.2使用poi抽取word示例
5.2.3使用poi抽取ppt示例
5.2.4使用poi抽取excel示例
5.3抽取rtf5.3.1開源rtf檔案解析器
5.3.2實現一個rtf檔案解析器
5.3.3解析rtf示例
5.4本章小結
第6章多媒體抽取231
6.1抽取視頻
6.1.1抽取視頻關鍵幀
6.1.2java視頻處理框架
6.1.3java視頻抽取示例
6.2音頻抽取
6.2.1抽取音頻
6.2.2學習java音頻抽取技術
6.3本章小結
第7章去掉網頁中的“噪聲”257
7.1“噪聲”對網頁的影響
7.2利用“統計學”消除“噪聲”
7.2.1網站風格樹
7.2.2“統計學去噪”java實現
7.3利用“視覺”消除“噪聲”
7.3.1“視覺”與“噪聲”
7.3.2“視覺去噪”java實現
7.4本章小結
第3篇自己動手挖掘web數據
第8章分析web圖283
8.1存儲web“圖”
8.2利用web“圖”分析連結
8.3google的秘密――pagerank
8.3.1深入理解pagerank算法
8.3.2pagerank算法的java實現
8.3.3套用pagerank進行連結分析
8.4pagerank的兄弟hits
8.4.1深入理解HITS算法
8.4.2hits算法的java實現
8.4.3套用hits進行連結分析
8.5pagerank與hits的比較
8.6本章小結
第9章去掉重複的“文檔”317
9.1何為“重複”的文檔
9.2去除“重複”文檔――排重
9.3利用“語義指紋”排重
9.3.1理解“語義指紋”
9.3.2“語義指紋”排重的java實現
9.4simhash排重
9.4.1理解simhash
9.4.2simhash排重的java實現
9.5分散式文檔排重
9.6本章小結
第10章分類與聚類的套用333
10.1網頁分類10.1.1收集語料庫
10.1.2選取網頁的“特徵”
10.1.3使用支持向量機進行網頁分類
10.1.4利用url地址進行網頁分類
10.1.5使用adaboost進行網頁分類
10.2網頁聚類
10.2.1深入理解DBSCAN算法
10.2.2使用dbscan算法聚類實例
10.3本章小結