官术网_书友最值得收藏!

前言

近幾年,網(wǎng)絡(luò)空間大數(shù)據(jù)(Big Data)已成為各領(lǐng)域研究的熱門話題。在企業(yè)應(yīng)用方面,天貓利用海量的用戶數(shù)據(jù)挖掘年輕消費(fèi)者偏好,并將用戶偏好反饋給手機(jī)研發(fā)部門,將其用于手機(jī)設(shè)計(jì);汽車之家利用平臺(tái)中用戶生成的大數(shù)據(jù)對(duì)用戶進(jìn)行畫像,在此基礎(chǔ)上開展個(gè)性化營(yíng)銷。在學(xué)術(shù)界,很多領(lǐng)域的學(xué)者針對(duì)大數(shù)據(jù)衍生出的新問題開展學(xué)術(shù)研究,如大數(shù)據(jù)驅(qū)動(dòng)的客戶洞察、大數(shù)據(jù)驅(qū)動(dòng)的個(gè)性化推薦、大數(shù)據(jù)驅(qū)動(dòng)的管理決策等。

在網(wǎng)絡(luò)大數(shù)據(jù)環(huán)境下,數(shù)據(jù)采集尤為重要。因此,很多企業(yè)都提供了(高級(jí))數(shù)據(jù)采集工程師的職位。對(duì)于很多在校大學(xué)生而言,尤其是碩士生和博士生,網(wǎng)絡(luò)數(shù)據(jù)采集是一項(xiàng)必備的技能。

在編寫本書之前,筆者主要從事數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與開發(fā)工作。在CSDN社區(qū)上,筆者撰寫過一系列介紹Java網(wǎng)絡(luò)爬蟲的博客,這些博客為筆者的主頁帶來了不少訪問量;同時(shí),也有許多博客讀者通過郵件的方式,向筆者咨詢網(wǎng)絡(luò)爬蟲相關(guān)的工具使用、程序調(diào)試等問題。為此,筆者對(duì)Java網(wǎng)絡(luò)爬蟲所涉及的知識(shí)與技術(shù)進(jìn)行了系統(tǒng)的梳理,并打算編寫一本關(guān)于Java網(wǎng)絡(luò)爬蟲的書籍。在寫作過程中,筆者與具有豐富網(wǎng)絡(luò)爬蟲教學(xué)經(jīng)驗(yàn)的姜元春教授就寫作邏輯、介紹的知識(shí)點(diǎn)、使用的案例等多方面的內(nèi)容進(jìn)行了多次討論。本書的內(nèi)容更加注重爬蟲理論、開發(fā)基礎(chǔ)與實(shí)戰(zhàn)演練。基于對(duì)本書爬蟲案例的研讀,讀者可以快速開發(fā)自己需要的其他網(wǎng)絡(luò)爬蟲程序。

本書的內(nèi)容

本書分為9章,具體內(nèi)容如下所示。

第1章至第3章:這3章重點(diǎn)介紹與網(wǎng)絡(luò)爬蟲開發(fā)相關(guān)的基礎(chǔ)知識(shí),其中包括網(wǎng)絡(luò)爬蟲的原理、Java基礎(chǔ)知識(shí)和HTTP協(xié)議等內(nèi)容。

第4章至第6章:這3章分別從網(wǎng)頁內(nèi)容獲取、網(wǎng)頁內(nèi)容解析和網(wǎng)絡(luò)爬蟲數(shù)據(jù)存儲(chǔ)3個(gè)方面介紹網(wǎng)絡(luò)爬蟲開發(fā)過程中所涉及的一系列技術(shù)。在這3章中,涉及很多開源工具的使用,如Jsoup、HttpClient、HtmlCleaner、Fastjson、POI3等。

第7章:本章利用具體的實(shí)戰(zhàn)案例,講解網(wǎng)絡(luò)爬蟲開發(fā)的流程。通過對(duì)本章的學(xué)習(xí),讀者可以輕松開發(fā)Java網(wǎng)絡(luò)爬蟲。

第8章:針對(duì)一些復(fù)雜的頁面,如動(dòng)態(tài)加載的頁面(執(zhí)行JavaScript腳本),本章介紹了一款實(shí)用的工具——Selenium WebDriver。

第9章:本章重點(diǎn)介紹了3種比較流行的Java網(wǎng)絡(luò)爬蟲開源框架,即Crawler4j、WebCollector和WebMagic。讀者可根據(jù)數(shù)據(jù)采集需求,自行開發(fā)支持多線程采集、斷點(diǎn)采集、代理切換等功能的網(wǎng)絡(luò)爬蟲項(xiàng)目。

本書的特色

? 注重基礎(chǔ):俗話說,基礎(chǔ)不牢,地動(dòng)山搖。本書從可讀性和實(shí)用性出發(fā),重點(diǎn)介紹了網(wǎng)絡(luò)爬蟲中涉及的基礎(chǔ)知識(shí)。

? 系統(tǒng)性:本書系統(tǒng)地梳理了網(wǎng)絡(luò)爬蟲的邏輯和開發(fā)網(wǎng)絡(luò)爬蟲需要掌握的技術(shù)。對(duì)網(wǎng)絡(luò)爬蟲初學(xué)者和進(jìn)階者而言,學(xué)習(xí)這些內(nèi)容將有利于解決數(shù)據(jù)采集過程中遇到的各種問題。

? 詳細(xì)的案例講解:本書選取了較為典型的網(wǎng)站,講解網(wǎng)絡(luò)爬蟲經(jīng)常遇到的問題,如HTTPS請(qǐng)求認(rèn)證問題、大文件內(nèi)容獲取問題、模擬登錄問題、不同格式文件(文本、圖片和PDF等)的存儲(chǔ)問題、定時(shí)數(shù)據(jù)采集問題等。

? 開源框架:本書介紹了3種Java網(wǎng)絡(luò)爬蟲開源框架,即Crawler4j、WebCollector和WebMagic。通過對(duì)這3種網(wǎng)絡(luò)爬蟲開源框架的學(xué)習(xí),讀者可以輕松開發(fā)一些高性能的網(wǎng)絡(luò)爬蟲項(xiàng)目。

? 完整的代碼:為便于讀者學(xué)習(xí),對(duì)于每個(gè)數(shù)據(jù)網(wǎng)絡(luò)爬蟲項(xiàng)目,筆者都提供了完整的代碼,并且在代碼中給出了清晰的注釋。

適合的讀者

? Java網(wǎng)絡(luò)爬蟲開發(fā)的初學(xué)者和進(jìn)階者。

? 科研人員,尤其是從事網(wǎng)絡(luò)大數(shù)據(jù)驅(qū)動(dòng)研究的碩士生和博士生。

? 開設(shè)相關(guān)課程的高等院校的師生。

? 企業(yè)網(wǎng)絡(luò)爬蟲開發(fā)人員。

說明

網(wǎng)絡(luò)爬蟲作為一項(xiàng)技術(shù),更應(yīng)該服務(wù)于社會(huì)。在使用該技術(shù)的過程中,應(yīng)遵守Robots協(xié)議(互聯(lián)網(wǎng)行業(yè)數(shù)據(jù)抓取的道德協(xié)議)。同時(shí),需要注意對(duì)數(shù)據(jù)所涉及的知識(shí)產(chǎn)權(quán)和隱私信息進(jìn)行保護(hù)。另外,采集數(shù)據(jù)時(shí),需要注意禮貌,即不頻繁地請(qǐng)求網(wǎng)頁,以防止給數(shù)據(jù)提供者的服務(wù)器造成不良影響。在使用所采集的數(shù)據(jù)時(shí),需要注意是否涉及商業(yè)利益和相關(guān)法律。最后,本書中所有使用的案例皆為測(cè)試案例,僅供讀者學(xué)習(xí)使用,本書中的URL均做了處理。

基金項(xiàng)目

本書由國(guó)家自然科學(xué)基金重大項(xiàng)目課題“面向大數(shù)據(jù)的商務(wù)分析與計(jì)算方法以及支撐平臺(tái)研究(71490725)”、國(guó)家自然科學(xué)基金重大研究計(jì)劃子課題“面向商務(wù)領(lǐng)域的大數(shù)據(jù)資源池及集成示范平臺(tái)(91746302)”、國(guó)家自然科學(xué)基金優(yōu)秀青年基金“個(gè)性化營(yíng)銷理論與方法(71722010)”提供資助。

勘誤

由于筆者的水平有限,書中難免出現(xiàn)一些錯(cuò)誤及不準(zhǔn)確之處,懇請(qǐng)讀者批評(píng)指正。為及時(shí)更正書中不恰當(dāng)?shù)膬?nèi)容,筆者在CSDN博客中創(chuàng)建了一個(gè)板塊,讀者可以將書中的問題以評(píng)論的方式進(jìn)行反饋,筆者將針對(duì)這些問題進(jìn)行勘誤。另外,也歡迎讀者通過發(fā)送電子郵件(qy20115549@126.com)的方式,反饋書稿的問題。

致謝

感謝電子工業(yè)出版社的林瑞和編輯、合肥工業(yè)大學(xué)電子商務(wù)研究所的劉業(yè)政教授和孫見山副教授等給本書提出的寶貴建議。

感謝華為的杜非、王佳佳和王錦坤師兄的幫助,是他們將我?guī)刖幊痰氖澜纭?/p>

感謝淮南師范學(xué)院的孫娜麗女士對(duì)整本書稿寫作語言的梳理。

感謝合肥工業(yè)大學(xué)電子商務(wù)研究所的朱婷婷、楊露、田志強(qiáng)、宋穎欣、張雪、李哲、賀菲菲、葉暢、陶守正、梁瑞誠(chéng)等博士參與本書內(nèi)容的討論。

最后,希望熱愛網(wǎng)絡(luò)爬蟲開發(fā)的小伙伴們能夠喜歡本書。

錢洋

2019年9月

主站蜘蛛池模板: 乌兰浩特市| 宜川县| 云浮市| 怀安县| 芦溪县| 隆安县| 元谋县| 沧州市| 湖口县| 罗源县| 庆元县| 柘荣县| 卫辉市| 梅州市| 黑水县| 南江县| 利津县| 山西省| 荃湾区| 敦化市| 锡林郭勒盟| 武定县| 诸暨市| 昌吉市| 高陵县| 华安县| 镇宁| 内江市| 敖汉旗| 高要市| 台南县| 西丰县| 黄梅县| 尉犁县| 琼海市| 广宁县| 边坝县| 长岭县| 许昌市| 万源市| 五家渠市|