大多數網絡爬蟲的開發原理與技巧在專業的公司內部都秘而不宣,至今仍然缺少理論與實踐相結閤的專門介紹網絡爬蟲的書籍。《自己動手寫網絡爬蟲(修訂版 配光盤)》嘗試理論與實踐相結閤,深入透徹地講解網絡爬蟲的原理並且輔以相關代碼作為參考。
《自己動手寫網絡爬蟲(修訂版 配光盤)》介紹瞭網絡爬蟲開發中的關鍵問題與Java實現。主要包括從互聯網獲取信息與提取信息和對Web信息挖掘等內容。《自己動手寫網絡爬蟲(修訂版 配光盤)》在介紹基本原理的同時注重輔以具體代碼實現來幫助讀者加深理解,書中部分代碼甚至可以直接使用。
《自己動手寫網絡爬蟲(修訂版 配光盤)》適用於有Java程序設計基礎的開發人員。同時也可以作為計算機相關專業本科生或研究生的參考教程。
羅剛,計算機軟件碩士,畢業於吉林工業大學。2005年創立北京盈智星科技發展有限公司,2008年聯閤創立上海數聚軟件公司。獵兔搜索創始人,當前獵兔搜索在北京、上海以及石傢莊均設有研發部。他帶領獵兔搜索技術開發團隊先後開發齣獵兔中文分詞係統、獵兔文本挖掘係統,智能垂直搜索係統以及網絡信息監測係統等,實現互聯網信息的采集、過濾、搜索和實時監測,其開發的搜索軟件日用戶訪問量萬次以上。
第1篇 自己動手抓取數據
第1章 全麵剖析網絡爬蟲 3
1.1 抓取網頁 4
1.1.1 深入理解URL 4
1.1.2 通過指定的URL抓取
網頁內容 6
1.1.3 Java網頁抓取示例 8
1.1.4 處理HTTP狀態碼 10
1.2 寬度優先爬蟲和帶偏好的爬蟲 12
1.2.1 圖的寬度優先遍曆 12
1.2.2 寬度優先遍曆互聯網 13
1.2.3 Java寬度優先爬蟲示例 15
1.2.4 帶偏好的爬蟲 22
1.2.5 Java帶偏好的爬蟲示例 23
1.3 設計爬蟲隊列 24
1.3.1 爬蟲隊列 24
1.3.2 使用Berkeley DB構建爬蟲
隊列 29
1.3.3 使用Berkeley DB 構建爬蟲
隊列示例 30
1.3.4 使用布隆過濾器構建
Visited錶 36
1.3.5 詳解Heritrix爬蟲隊列 39
1.4 設計爬蟲架構 46
1.4.1 爬蟲架構 46
1.4.2 設計並行爬蟲架構 47
1.4.3 詳解Heritrix爬蟲架構 52
1.5 使用多綫程技術提升爬蟲性能 55
1.5.1 詳解Java多綫程 55
1.5.2 爬蟲中的多綫程 59
1.5.3 一個簡單的多綫程爬蟲實現 60
1.5.4 詳解Heritrix多綫程結構 61
本章小結 64
第2章 分布式爬蟲 69
2.1 設計分布式爬蟲 70
2.1.1 分布式與雲計算 70
2.1.2 分布式與雲計算技術在
爬蟲中的應用--淺析
Google的雲計算架構 72
2.2 分布式存儲 72
2.2.1 從Ralation_DB到key/value
存儲 72
2.2.2 Consistent Hash算法 74
2.2.3 Consistent Hash代碼實現 79
2.3 Google的成功之道--GFS 80
2.3.1 GFS詳解 80
2.3.2 開源GFS--HDFS 84
2.4 Google網頁存儲秘訣--BigTable 88
2.4.1 詳解BigTable 88
2.4.2 開源BigTable-HBase 93
2.5 Google的成功之道--
MapReduce算法 98
2.5.1 詳解MapReduce算法 100
2.5.2 MapReduce容錯處理 101
2.5.3 MapReduce實現架構 102
2.5.4 Hadoop中的MapReduce
簡介 104
2.5.5 wordCount例子的實現 105
2.6 Nutch中的分布式 109
2.6.1 Nutch爬蟲詳解 109
2.6.2 Nutch中的分布式 116
本章小結 118
第3章 爬蟲的"方方麵麵" 121
3.1 爬蟲中的"黑洞" 122
3.2 主題爬蟲和限定爬蟲 122
3.2.1 理解主題爬蟲 122
3.2.2 Java主題爬蟲 128
3.2.3 理解限定爬蟲 130
3.2.4 Java限定爬蟲示例 136
3.3 有"道德"的爬蟲 152
本章小結 156
第2篇 自己動手抽取Web內容
第4章 "處理"HTML頁麵 159
4.1 徵服正則錶達式 160
4.1.1 學習正則錶達式 160
4.1.2 Java正則錶達式 163
4.2 抽取HTML正文 169
4.2.1 瞭解Jsoup 169
4.2.2 使用正則錶達式抽取示例 173
4.3 抽取正文 177
4.4 從JavaScript中抽取信息 193
4.4.1 JavaScript抽取方法 193
4.4.2 JavaScript抽取示例 195
本章小結 197
第5章 非HTML正文抽取 199
5.1 抽取PDF文件 200
5.1.1 學習PDFBox 200
5.1.2 使用PDFBox抽取示例 204
5.1.3 提取PDF文件標題 205
5.1.4 處理PDF格式的公文 206
5.2 抽取Office文檔 211
5.2.1 學習POI 211
5.2.2 使用POI抽取Word示例 211
5.2.3 使用POI抽取PPT 示例 213
5.2.4 使用POI抽取Excel示例 214
5.3 抽取RTF 217
5.3.1 開源RTF文件解析器 217
5.3.2 實現一個RTF文件解析器 217
5.3.3 解析RTF示例 222
本章小結 227
第6章 多媒體抽取 229
6.1 視頻抽取 230
6.1.1 抽取視頻關鍵幀 230
6.1.2 Java視頻處理框架 231
6.1.3 Java視頻抽取示例 235
6.2 音頻抽取 247
6.2.1 抽取音頻 248
6.2.2 Java音頻抽取技術 252
本章小結 254
第7章 去掉網頁中的"噪聲" 255
7.1 "噪聲"對網頁的影響 256
7.2 利用"統計學"消除"噪聲" 257
7.2.1 網站風格樹 260
7.2.2 "統計學去噪"的
Java實現 268
7.3 利用"視覺"消除"噪聲" 272
7.3.1 "視覺"與"噪聲" 272
7.3.2 "視覺去噪"的Java實現 273
本章小結 277
第3篇 自己動手挖掘Web數據
第8章 分析Web圖 281
8.1 存儲Web"圖" 282
8.2 利用Web"圖"分析鏈接 291
8.3 Google的秘密--PageRank 291
8.3.1 深入理解PageRank算法 291
8.3.2 PageRank算法的Java實現 295
8.3.3 應用PageRank進行鏈接
分析 298
8.4 PageRank 的兄弟HITS 299
8.4.1 深入理解HITS算法 299
8.4.2 HITS算法的Java實現 300
8.4.3 應用HITS進行鏈接分析 311
8.5 PageRank與HITS比較 312
本章小結 313
第9章 去掉"重復"的文檔 315
9.1 何為"重復"的文檔 316
9.2 利用"語義指紋"排重 316
9.2.1 理解"語義指紋" 318
9.2.2 "語義指紋"排重的
Java實現 319
9.3 SimHash排重 319
9.3.1 理解SimHash 320
9.3.2 SimHash排重的Java實現 321
9.4 分布式文檔排重 328
本章小結 329
第10章 分類與聚類的應用 331
10.1 網頁分類 332
10.1.1 收集語料庫 332
10.1.2 選取網頁的"特徵" 333
10.1.3 使用支持嚮量機進行
網頁分類 336
10.1.4 利用URL地址進行
網頁分類 338
10.1.5 使用AdaBoost進行
網頁分類 338
10.2 網頁聚類 341
10.2.1 深入理解DBScan算法 341
10.2.2 使用DBScan算法聚類
實例 342
本章小結 344
第2章 分布式爬蟲
隨著互聯網技術的發展以及風起雲湧的雲計算浪潮,爬蟲技術也逐漸嚮分布式方嚮發展。比如,Google的爬蟲就是使用成韆上萬颱小型機和微機進行閤作,完成分布式抓取工作的。分布式技術不僅可以解決IT運營的成本,還可以解決爬蟲效率問題,尤其是當今雲計算的熱潮,更把分布式推嚮瞭極緻。
2.1 設計分布式爬蟲
把抓取任務分布到不同的節點主要是為瞭抓取性能與可擴展性,也可以使用物理分布的爬蟲係統,讓每個爬蟲節點抓取靠近它的網站。例如,北京的爬蟲節點抓取北京的網站,上海的爬蟲節點抓取上海的網站,電信網絡中的爬蟲節點抓取托管在電信的網站,聯通網絡中的爬蟲節點抓取托管在聯通的網站。
此外,還需要考慮容錯。如果一個節點X崩潰(或優雅地離開),我們可以通過查找任務緩存,知道分配給它哪些任務。這次X的任務要由其他的節點來重新執行。
2.1.1 分布式與雲計算
分布式技術是一種基於網絡的計算機處理技術,與集中式相對應。近些年來,由於個人計算機的性能得到極大的提高及其使用的普及,使得將處理任務分布到網絡上的所有計算機成為可能。分布式計算是和集中式計算相對立的概念,分布式計算的數據可以分布在很大區域去完成。
在分布式網絡中,數據的存儲和處理都是在本地工作站進行的。數據輸齣可以打印,也可以保存在軟盤上。通過網絡能夠更快、更便捷地訪問數據。因為每颱計算機都能夠存儲和處理數據,所以不要求服務器的功能十分強大,其價格也就不必過於昂貴。這種類型的網絡可以適應用戶的各種需要,同時允許他們共享網絡的數據、資源和服務。在分布式網絡中使用的計算機既能夠作為獨立的係統使用,也可以把它們連接在一起獲得更強大的網絡功能。
分布式計算的優點是可以快速訪問、多用戶使用。每颱計算機可以訪問係統內其他計算機的信息文件,係統設計上具有更大的靈活性。既可為獨立計算機的地區用戶的特殊需求服務,也可為聯網的企業需求服務,實現係統內不同計算機之間的通信,每颱計算機都可以擁有和保持所需要的最大數據和文件,減少瞭數據傳輸的成本和風險。為分散地區和中心辦公室雙方提供更迅速的信息通信和處理方式,為每個分散的數據庫提供作用域,數據存儲於許多存儲單元中,但任何用戶都可以進行全局訪問,使故障的不利影響最小化,以較低的成本來滿足企業的特定要求。
雲計算(Cloud Computing)是分布式處理(Distributed Computing)、並行處理(Parallel Computing)和網格計算(Grid Computing)的發展,或者說是這些計算機科學概念的商業實現。
雲計算的基本原理是,通過使計算任務分布在大量的分布式計算機上,而非本地計算機或遠程服務器中,企業數據中心的運行將與互聯網更相似。這使得企業能夠將資源切換到需要的應用上,從而根據需求訪問計算機和存儲係統。
這可是一種革命性的舉措,打個比方,就好比是從古老的單颱發電機模式轉嚮瞭電廠集中供電的模式。它意味著計算能力也可以作為一種商品進行流通,就像煤氣、水電一樣,使用方便,費用低廉。最大的不同在於,它是通過互聯網進行傳輸的。
雲計算的藍圖已經呼之欲齣:在未來,隻需要一颱筆記本或者一個手機,就可以通過網絡服務來實現我們需要的一切,甚至包括超級計算這樣的任務。從這個角度而言,最終用戶纔是雲計算的真正擁有者。
雲計算的應用包含這樣一種思想,把力量聯閤起來,給其中的每一個成員使用。
目前,PC依然是我們日常工作生活中的核心工具--我們用PC處理文檔、存儲資料,用電子郵件或U盤與他人分享信息。如果PC硬盤壞瞭,我們會因為資料丟失而束手無策。
而在雲計算時代,"雲"會替我們做存儲和計算的工作。"雲"就是計算機群,每一群都包括幾十萬颱,甚至上百萬颱計算機。"雲"的好處還在於,其中的計算機可以隨時更新,保證"雲"長生不老。Google就有好幾個這樣的"雲",其他IT巨頭,如微軟、雅虎、亞馬遜(Amazon)也有或正在建設這樣的"雲"。
屆時,我們隻需要一颱能上網的電腦,不需關心存儲或計算發生在哪朵"雲"上,一旦有需要,我們可以在任何地點用任何設備,如電腦、手機等,快速地計算和找到這些資料。我們再也不用擔心資料會丟失瞭。
雲計算是虛擬化(Virtualization)、效用計算(Utility Computing)、IaaS(基礎設施即服務)、PaaS(平颱即服務)、SaaS(軟件即服務)等概念混閤演進並躍升的結果。雲計算的特點如下:
* 超大規模。Google雲計算已經擁有100多萬颱服務器,Amazon、IBM、微軟、Yahoo等的"雲"均擁有幾十萬颱服務器。企業私有雲一般擁有數百至上韆颱服務器。"雲"能賦予用戶前所未有的計算能力。
* 虛擬化。雲計算支持用戶在任意位置、使用各種終端獲取應用服務。所請求的資源來自"雲",而不是固定的、有形的實體。應用在"雲"中某處運行,但實際上用戶無需瞭解、也不用擔心應用運行的具體位置。隻需要一颱筆記本或者一個手機,就可以通過網絡服務來實現我們需要的一切,甚至包括超級計算這樣的任務。
* 高可靠性。"雲"使用瞭數據多副本容錯、計算節點同構可互換等措施來保障服務的高可靠性,使用雲計算比使用本地計算機可靠。
* 通用性。雲計算不針對特定的應用,在"雲"的支撐下可以構造齣韆變萬化的應用,同一個"雲"可以同時支撐不同的應用運行。
* 高可擴展性。"雲"的規模可以動態伸縮,以滿足應用和用戶規模增長的需要。
* 按需服務。"雲"是一個龐大的資源池,可以按需購買;雲可以像自來水、電、煤氣那樣計費。
* 極其廉價。由於"雲"的特殊容錯措施可以采用極其廉價的節點來構成雲,"雲"的自動化集中式管理使得大量企業無需負擔日益高昂的數據中心管理成本,"雲"的通用性使資源的利用率較之傳統係統大幅提升,因此用戶可以充分享受"雲"的低成本優勢,通常隻要花費幾百美元、幾天時間就能完成以前需要數萬美元、數月時間纔能完成的任務。
……
前 言
當你在網上衝浪時,你是否知道還有一類特殊的網絡用戶也在互聯網上默默地工作著,它們就是網絡爬蟲。這些網絡爬蟲按照設計者預定的方式,在網絡中穿梭,同時自動收集有用的信息,進行分類和整理,將整理結果提供給用戶,以方便用戶查找他們感興趣的內容。由於網絡爬蟲的實用性,引起瞭很多程序員,特彆是Web程序員的興趣。
但是大多數網絡爬蟲的開發原理與技巧在專業的公司內部都秘而不宣,至今仍然缺少理論與實踐相結閤的專門介紹網絡爬蟲的書籍。本書嘗試理論與實踐相結閤,深入透徹地講解網絡爬蟲的原理,並且輔以相關代碼作為參考。本書相關的代碼在附帶光盤中可以找到。
本書的兩位主要作者在搜索引擎領域都有豐富的理論和實踐經驗。同時,還有多個程序員幫忙開發或編寫瞭代碼實現,例如Java實現異步I/O或對PDF文件的處理等。由於作者的日常工作繁忙,做得不夠的地方敬請諒解。
作者羅剛在參加編寫本書之前,還閤作撰寫過《解密搜索引擎技術實戰》一書,但存在講解不夠細緻、知識點不夠深入等問題。此次修訂,對一些過時的內容進行瞭更新。
本書從基本的爬蟲原理開始講解,通過介紹優先級隊列、寬度優先搜索等內容引領讀者入門;之後根據當前風起雲湧的雲計算熱潮,重點講述瞭雲計算的相關內容及其在爬蟲中的應用,以及帶偏好的爬蟲、信息抽取、鏈接分析等內容;為瞭能夠讓讀者更深入地瞭解爬蟲,本書在最後兩章還介紹瞭有關爬蟲的數據挖掘等內容。
由於搜索引擎相關領域也正在快速發展中,而且由於篇幅的限製,有些不成熟的內容,沒有能夠在本書體現,例如有關"暗網"的內容。隨著技術的不斷發展,我們將在今後的版本中加入這些內容。
本書適閤需要具體實現網絡爬蟲的程序員使用,對於信息檢索等相關研究人員也有一定的參考價值,同時獵兔搜索技術團隊也已經開發齣以本書為基礎的專門培訓課程和商業軟件。目前的一些網絡爬蟲軟件仍然有很多功能有待實現,作者真誠地希望通過本書把讀者帶入網絡爬蟲開發的大門並認識更多的朋友。
感謝開源軟件和我們的傢人、關心我們的老師和朋友、創業夥伴以及選擇獵兔搜索軟件的客戶多年來的支持。
編 者
我一直對如何從浩瀚的網絡世界中提取有用的信息感到好奇,網絡爬蟲無疑是實現這一目標的關鍵技術。市麵上關於爬蟲的書籍不在少數,但很多都顯得有些陳舊,或者講解得過於晦澀難懂,讓人難以入門。當我看到《自己動手寫網絡爬蟲(修訂版 配光盤)》這本書時,立刻被它的標題吸引住瞭。“自己動手”這四個字,暗示瞭這本書會非常注重實踐操作,這正是我所需要的。我希望這本書能夠以一種循序漸進的方式,帶領我瞭解爬蟲的基本原理,比如HTTP請求、HTML解析等。我期待它能教授我如何使用Python這樣一種流行的編程語言,配閤諸如BeautifulSoup、Scrapy等強大的庫,來構建功能強大的爬蟲。在實際應用中,反爬機製總是不可避免的,因此,我也非常希望這本書能夠深入講解如何應對這些挑戰,例如如何處理JavaScript渲染的頁麵、如何繞過驗證碼、如何進行IP代理設置等等。我猜想光盤中會包含大量的源代碼示例,這些代碼經過修訂和優化,可以直接應用於學習和實踐,這對於我這種希望邊學邊練的讀者來說,絕對是極大的幫助。我希望通過這本書,我能夠真正掌握編寫網絡爬蟲的能力,從而能夠高效地獲取我所需的數據,為我的學習或工作提供有力支持。
評分這本書的封麵上赫然印著“自己動手寫網絡爬蟲(修訂版 配光盤)”,這幾個字就像是為我量身定做的。我一直對網絡世界充滿瞭好奇,總想著能不能自己去挖掘那些隱藏在海量信息背後的寶藏。雖然之前看過一些關於爬蟲的零散資料,但總是感覺不成體係,學習起來斷斷續續,總是在一些細節上卡殼。特彆是到瞭實際操作層麵,麵對各種奇奇怪怪的網頁結構、反爬機製,更是束手無策。這本書的齣現,仿佛是為我指明瞭一條清晰的道路。封麵上的“配光盤”三個字,更是讓我眼前一亮,這通常意味著書中會有配套的代碼示例,可以幫助我更快地理解和實踐書中的理論知識,這對於我這種動手能力大於理論理解能力的學習者來說,簡直是福音。我期待它能從最基礎的概念講起,循序漸進地引導我掌握爬蟲的核心技術,而不是一上來就拋齣復雜的代碼。我想象中的這本書,應該會詳細講解如何分析網頁結構、如何使用HTTP協議、如何處理各種數據格式(JSON、XML等),以及如何應對常見的反爬策略,比如驗證碼、IP封鎖、JavaScript渲染等。我尤其希望它能提供一些真實世界的案例分析,讓我看到爬蟲是如何在實際應用中發揮作用的,例如數據采集、市場分析、信息監控等等。總而言之,我希望這本書能真正做到“自己動手”,讓我從小白蛻變成一個能夠獨立構建網絡爬蟲的實踐者。
評分我最近在考慮學習一門新的編程技術,來擴展我的技能樹,也希望能解決一些工作中遇到的信息獲取難題。網絡爬蟲這個方嚮一直吸引我,但網上信息太雜亂,很多教程都碎片化,缺乏係統性。偶然看到這本書《自己動手寫網絡爬蟲(修訂版 配光盤)》,感覺名字很直接,很接地氣,似乎就是我需要的。“自己動手”這四個字,讓我覺得這本書不會是那種理論說教型的,更傾嚮於指導讀者親自去實踐。我希望這本書能從最基礎的HTTP協議開始講起,深入淺齣地解釋網頁是如何被請求和響應的。然後,再逐步引入Python等編程語言,教授如何利用現有的庫來解析HTML、XML等網頁結構,並從中提取所需的數據。我特彆希望書中能包含一些關於反爬蟲技術的講解,比如如何識彆和應對JavaScript動態加載的內容,如何處理AJAX請求,以及如何應對IP限製和用戶代理的僞裝。當然,我也期望書中能提供一些關於Scrapy等框架的介紹,因為我知道這些框架對於構建更復雜的、可擴展的爬蟲項目非常重要。光盤的配備讓我非常欣喜,我猜想裏麵應該會有書中所有代碼的示例,甚至是一些常用爬蟲庫的安裝教程和配置指南。我希望這本書能讓我真正理解爬蟲的工作原理,並能獨立寫齣符閤自己需求的爬蟲程序,而不是僅僅停留在復製粘貼的階段。
評分作為一個對數據挖掘和信息分析頗感興趣的人,我一直對網絡爬蟲技術心嚮往之。我曾嘗試過閱讀一些相關的技術文章和在綫教程,但總感覺它們要麼過於理論化,要麼就隻講解瞭某個特定庫的使用方法,缺乏一個完整的知識體係。這次看到《自己動手寫網絡爬蟲(修訂版 配光盤)》,我的第一感覺是:這本書可能真的能幫我打通任督二脈。書名中的“自己動手”非常關鍵,這意味著它應該是一個非常注重實踐的書籍,而不是那種隻會講概念的“紙上談兵”。我期待它能帶領我從零開始,一步步構建自己的爬蟲項目。我希望它能詳細講解如何選擇閤適的編程語言和開發環境,如何利用Python等語言以及Requests、BeautifulSoup、Scrapy等強大的庫來高效地抓取網頁數據。更重要的是,我希望書中能深入探討在實際爬蟲過程中會遇到的各種挑戰,比如如何應對網站結構的改變,如何處理各種反爬蟲機製(如驗證碼、IP封鎖、JavaScript渲染等),以及如何保證爬蟲的穩定性和效率。我之所以對“配光盤”特彆留意,是因為我深信實踐齣真知,光盤中的配套代碼示例和可能包含的練習項目,將是幫助我鞏固所學知識、提升實操能力的絕佳輔助。我期望這本書能讓我真正掌握網絡爬蟲的核心技能,並能將其應用於實際的數據分析和信息獲取任務中。
評分說實話,我之前對編寫網絡爬蟲這件事一直抱著一種“看熱鬧”的心態,總覺得那是少數技術大牛纔能玩轉的領域。但最近因為工作需要,開始接觸到大量的數據分析和信息整閤,我意識到掌握一定的爬蟲技能,能夠自動化地獲取所需數據,將會極大地提高我的工作效率。我瀏覽瞭市麵上不少關於爬蟲的書籍,很多都過於理論化,要麼就是代碼堆砌,讀起來晦澀難懂,讓人望而卻步。而這本書的名字“自己動手寫網絡爬蟲”,以及“修訂版”和“配光盤”的字樣,讓我覺得它可能更注重實踐性和易懂性。我希望這本書能夠像一位循循善誘的老師,從零開始,用最通俗易懂的語言解釋爬蟲的原理,一步步教我如何搭建開發環境,如何選擇閤適的編程語言和庫(比如Python的requests、BeautifulSoup、Scrapy等)。我期待書中能包含豐富的代碼示例,並且這些代碼都經過瞭實際驗證,能夠直接運行,甚至可以直接復製代碼粘貼到我的環境中進行修改和學習。我還希望它能深入講解爬蟲在實際應用中會遇到的各種挑戰,比如如何處理動態加載的內容,如何繞過各種形式的驗證碼,如何避免被網站封禁IP,以及如何進行大規模數據采集時的性能優化。光盤的配置更是讓我充滿瞭期待,我設想裏麵會有書中的所有源代碼、一些額外的練習題、甚至是一些精選的爬蟲工具和資源鏈接,這樣我就可以更加方便地進行學習和實踐,而不是僅僅停留在理論層麵。
評分我的心是一個好看的,你是個什麼都有瞭你我就想。在你麵前可以用在學習期間還,
評分由於it行業更新速度太快,這本書中的隻是很多感覺都過時瞭,隻能作為一本參考書。
評分前沿的書籍,看瞭大開腦洞。
評分滿300-200那天買的,一下子買瞭很多 物超所值
評分書不錯,包裝也很好,快遞一如既往的給力
評分很好的書,就是說的有點淺
評分書有點老瞭,剛開始的httpclient已經過時瞭
評分書不錯,是正品,有包裝膜!送貨很快!
評分此用戶未填寫評價內容
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版權所有