Python是數(shù)據(jù)分析的語(yǔ)言,而網(wǎng)絡(luò)中的數(shù)據(jù)和信息很多,如何從中獲取需要的數(shù)據(jù)和信息呢?簡(jiǎn)單、直接的方法就是用爬蟲(chóng)技術(shù)來(lái)解決。本書(shū)是一本教初學(xué)者學(xué)習(xí)如何爬取網(wǎng)絡(luò)數(shù)據(jù)和信息的入門讀物。書(shū)中不僅有Python的相關(guān)內(nèi)容,而且還有數(shù)據(jù)處理和數(shù)據(jù)挖掘等方面的內(nèi)容。本書(shū)內(nèi)容非常實(shí)用,講解時(shí)穿插了22個(gè)爬蟲(chóng)實(shí)戰(zhàn)案例,可以大大提高讀者的實(shí)際動(dòng)手能力。本書(shū)共分12章,核心主題包括Python零基礎(chǔ)語(yǔ)法入門、爬蟲(chóng)原理和網(wǎng)頁(yè)構(gòu)造、我的第壹個(gè)爬蟲(chóng)程序、正則表達(dá)式、Lxml庫(kù)與Xpath語(yǔ)法、使用API、數(shù)據(jù)庫(kù)存儲(chǔ)、多進(jìn)程爬蟲(chóng)、異步加載、表單交互與模擬登錄、Selenium模擬瀏覽器、Scrapy爬蟲(chóng)框架。此外,書(shū)中通過(guò)一些典型爬蟲(chóng)案例,講解了有經(jīng)緯信息的地圖圖表和詞云的制作方法,讓讀者體驗(yàn)數(shù)據(jù)背后的樂(lè)趣。本書(shū)適合爬蟲(chóng)技術(shù)初學(xué)者、愛(ài)好者及高等院校的相關(guān)學(xué)生,也適合數(shù)據(jù)爬蟲(chóng)工程師作為參考讀物,同時(shí)也適合各大Python數(shù)據(jù)分析的培訓(xùn)機(jī)構(gòu)作為教材使用。
隨著Internet的飛速發(fā)展,互聯(lián)網(wǎng)中每天都會(huì)產(chǎn)生大量的非結(jié)構(gòu)化數(shù)據(jù)。如何從這些非結(jié)構(gòu)化數(shù)據(jù)中提取有效信息,供人們?cè)趯W(xué)習(xí)和工作中使用呢?這個(gè)問(wèn)題促使網(wǎng)絡(luò)爬蟲(chóng)技術(shù)應(yīng)運(yùn)而生。由于Python語(yǔ)言簡(jiǎn)單易用,而且還提供了優(yōu)秀易用的第三方庫(kù)和多樣的爬蟲(chóng)框架,所以使得它成為了網(wǎng)絡(luò)爬蟲(chóng)技術(shù)的主力軍。近年來(lái),大數(shù)據(jù)技術(shù)發(fā)展迅速,數(shù)據(jù)爬取作為數(shù)據(jù)分析的一環(huán)也顯得尤為重要。程序員要進(jìn)入與數(shù)據(jù)處理、分析和挖掘等相關(guān)的行業(yè),就必須要掌握Python語(yǔ)言及其網(wǎng)絡(luò)爬蟲(chóng)的運(yùn)用,這樣才能在就業(yè)嚴(yán)峻的市場(chǎng)環(huán)境中有較強(qiáng)的職場(chǎng)競(jìng)爭(zhēng)力和較好的職業(yè)前景。
目前,圖書(shū)市場(chǎng)上僅有的幾本Python網(wǎng)絡(luò)爬蟲(chóng)類圖書(shū),要么是國(guó)外優(yōu)秀圖書(shū),但書(shū)籍翻譯隱晦,閱讀難度大,而且往往由于網(wǎng)絡(luò)原因,使得書(shū)中的案例不能正常使用,因此不適合初學(xué)者;要么是國(guó)內(nèi)資料,但質(zhì)量參差不齊,而且不成系統(tǒng),同樣不適合初學(xué)者。整個(gè)圖書(shū)市場(chǎng)上還鮮見(jiàn)一本適合初學(xué)者閱讀的Python網(wǎng)絡(luò)爬蟲(chóng)類圖書(shū)。本書(shū)便是基于這個(gè)原因而編寫。本書(shū)從Python語(yǔ)言基礎(chǔ)講起,然后深入淺出地介紹了爬蟲(chóng)原理、各種爬蟲(chóng)技術(shù)及22個(gè)爬蟲(chóng)實(shí)戰(zhàn)案例。本書(shū)全部選用國(guó)內(nèi)網(wǎng)站作為爬蟲(chóng)案例,便于讀者理解和實(shí)現(xiàn),同時(shí)也可以大大提高讀者對(duì)Python網(wǎng)絡(luò)爬蟲(chóng)項(xiàng)目的實(shí)戰(zhàn)能力。
本書(shū)特色
1.涵蓋Windows 7系統(tǒng)第三方庫(kù)的安裝與配置
本書(shū)包含Python模塊源的配置、第三方庫(kù)的安裝和使用,以及PyCharm的安裝和使用。
2.對(duì)網(wǎng)絡(luò)爬蟲(chóng)技術(shù)進(jìn)行了原理性的分析
本書(shū)從一開(kāi)始便對(duì)網(wǎng)絡(luò)連接和爬蟲(chóng)原理做了基本介紹,并對(duì)網(wǎng)絡(luò)爬蟲(chóng)的基本流程做了詳細(xì)講解,便于讀者理解本書(shū)后面章節(jié)中的爬蟲(chóng)項(xiàng)目案例。
3.內(nèi)容全面,應(yīng)用性強(qiáng)
本書(shū)介紹了從單線程到多進(jìn)程,從同步加載到異步加載,從簡(jiǎn)單爬蟲(chóng)到框架爬蟲(chóng)等一系列爬蟲(chóng)技術(shù),具有超強(qiáng)的實(shí)用性,讀者可以隨時(shí)查閱和參考。
4.項(xiàng)目案例典型,實(shí)戰(zhàn)性強(qiáng),有較高的應(yīng)用價(jià)值
本書(shū)介紹了22個(gè)爬蟲(chóng)項(xiàng)目實(shí)戰(zhàn)案例。這些案例來(lái)源于不同的網(wǎng)站頁(yè)面,具有很高的應(yīng)用價(jià)值。而且這些案例分別使用了不同的爬蟲(chóng)技術(shù)實(shí)現(xiàn),便于讀者融會(huì)貫通地理解書(shū)中介紹的技術(shù)。
本書(shū)內(nèi)容
第1章Python零基礎(chǔ)語(yǔ)法入門
本章介紹了Python和PyCharm的安裝及Python最為簡(jiǎn)單的語(yǔ)法基礎(chǔ),包括簡(jiǎn)單的流程控制、數(shù)據(jù)結(jié)構(gòu)、文件操作和面向?qū)ο蟮木幊趟枷搿?
第2章爬蟲(chóng)原理和網(wǎng)頁(yè)構(gòu)造
本章通過(guò)介紹網(wǎng)絡(luò)連接原理,進(jìn)而介紹了爬蟲(chóng)的原理,講解了爬蟲(chóng)的基本流程,另外還介紹了如何使用Chrome瀏覽器認(rèn)識(shí)網(wǎng)頁(yè)構(gòu)造和查詢網(wǎng)頁(yè)信息。
第3章我的第一個(gè)爬蟲(chóng)程序
本章主要介紹了安裝請(qǐng)求和解析網(wǎng)頁(yè)的Python第三方庫(kù)、Requests庫(kù)和BeautifulSoup庫(kù)的使用方法,最后通過(guò)綜合案例手把手教會(huì)讀者編寫一個(gè)簡(jiǎn)單的爬蟲(chóng)程序。
第4章正則表達(dá)式
本章主要介紹了正則表達(dá)式的常用符號(hào)及Python中re模塊的使用方法,在不需要解析庫(kù)的情況下完成一個(gè)簡(jiǎn)單的爬蟲(chóng)程序。
第5章Lxml庫(kù)與Xpath語(yǔ)法
本章主要介紹了Lxml庫(kù)在Mac和Linux環(huán)境中的安裝方法、Lxml庫(kù)的使用方法及Xpath語(yǔ)法知識(shí),并且通過(guò)案例對(duì)正則表達(dá)式、BeautifulSoup和Lxml進(jìn)行了性能對(duì)比,最后通過(guò)綜合案例鞏固Xpath語(yǔ)言的相關(guān)知識(shí)。
第6章使用API
本章主要介紹了API的使用和調(diào)用方法,對(duì)API返回的JSON數(shù)據(jù)進(jìn)行解析,最后通過(guò)使用API完成一些有趣的綜合案例。
第7章數(shù)據(jù)庫(kù)存儲(chǔ)
本章主要介紹了非關(guān)系型數(shù)據(jù)庫(kù)MongoDB和關(guān)系型數(shù)據(jù)庫(kù)MySQL的相關(guān)知識(shí),并通過(guò)綜合案例展示了Python對(duì)兩種數(shù)據(jù)庫(kù)的存儲(chǔ)方法。
第8章多進(jìn)程爬蟲(chóng)
本章主要介紹了多線程及其概念,并通過(guò)案例對(duì)串行爬蟲(chóng)和多進(jìn)程爬蟲(chóng)的性能進(jìn)行了對(duì)比,最后通過(guò)綜合案例介紹了多進(jìn)程爬取數(shù)據(jù)的方法和技巧。
第9章異步加載
本章主要介紹了異步加載的基本概念,以及如何針對(duì)異步加載網(wǎng)頁(yè)使用逆向工程抓取數(shù)據(jù),最后通過(guò)綜合案例講解了逆向工程的使用方法和常用技巧。
第10章表單交互與模擬登錄
本章主要介紹了Requests庫(kù)的POST方法,通過(guò)觀測(cè)表單源代碼和逆向工程來(lái)填寫表單以獲取網(wǎng)頁(yè)信息,以及通過(guò)提交cookie信息來(lái)模擬登錄網(wǎng)站。
第11章Selenium模擬瀏覽器
本章主要介紹了Selenium模塊的安裝、Selenium瀏覽器的選擇和安裝,以及Selenium模塊的使用方法,最后通過(guò)綜合案例介紹了如何對(duì)采用異步加載技術(shù)的網(wǎng)頁(yè)進(jìn)行爬蟲(chóng)。
第12章Scrapy爬蟲(chóng)框架
本章主要介紹了Windows 7環(huán)境中的Scrapy安裝和創(chuàng)建爬蟲(chóng)項(xiàng)目的過(guò)程,并通過(guò)案例詳細(xì)講解了各個(gè)Scrapy文件的作用和使用方法,而且通過(guò)多個(gè)綜合案例講解了如何通過(guò)Scrapy爬蟲(chóng)框架把數(shù)據(jù)存儲(chǔ)到不同類型的文件中,最后講解了如何編寫跨頁(yè)面網(wǎng)站的爬蟲(chóng)代碼。
本書(shū)讀者對(duì)象
�8�5數(shù)據(jù)爬蟲(chóng)初學(xué)者;
�8�5數(shù)據(jù)分析初級(jí)人員;
�8�5網(wǎng)絡(luò)爬蟲(chóng)愛(ài)好者;
�8�5數(shù)據(jù)爬蟲(chóng)工程師;
�8�5 Python初級(jí)開(kāi)發(fā)人員;
�8�5需要提高動(dòng)手能力的爬蟲(chóng)技術(shù)人員;
�8�5高等院校的相關(guān)學(xué)生。
本書(shū)配套資源及獲取方式
本書(shū)涉及的源代碼文件等配套學(xué)習(xí)資源需要讀者自行下載。請(qǐng)登錄機(jī)械工業(yè)出版社華章公司的網(wǎng)站www.hzbook.com,然后搜索到本書(shū)頁(yè)面,按照頁(yè)面上的說(shuō)明進(jìn)行下載即可。
雖然我們對(duì)書(shū)中所述內(nèi)容都盡量核實(shí),并多次進(jìn)行文字校對(duì),但因時(shí)間有限,加之水平所限,書(shū)中疏漏和錯(cuò)誤之處在所難免,敬請(qǐng)廣大讀者批評(píng)、指正。聯(lián)系我們請(qǐng)發(fā)E-mail到hzbook2017 163.com。
編著者
目錄
前言
第1章 Python零基礎(chǔ)語(yǔ)法入門1
1.1 Python與PyCharm安裝1
1.1.1 Python安裝(Windows、Mac和Linux)1
1.1.2 PyCharm安裝3
1.2 變量和字符串3
1.2.1 變量4
1.2.2 字符串的“加法”和“乘法”4
1.2.3 字符串的切片和索引5
1.2.4 字符串方法5
1.3 函數(shù)與控制語(yǔ)句7
1.3.1 函數(shù)7
1.3.2 判斷語(yǔ)句8
1.3.3 循環(huán)語(yǔ)句8
1.4 Python數(shù)據(jù)結(jié)構(gòu)9
1.4.1 列表9
1.4.2 字典11
1.4.3 元組和集合11
1.5 Python文件操作11
1.5.1 打開(kāi)文件11
1.5.2 讀寫文件12
1.5.3 關(guān)閉文件13
1.6 Python面向?qū)ο?3
1.6.1 定義類14
1.6.2 實(shí)例屬性14
1.6.3 實(shí)例方法15
1.6.4 類的繼承16
第2章 爬蟲(chóng)原理和網(wǎng)頁(yè)構(gòu)造17
2.1 爬蟲(chóng)原理17
2.1.1 網(wǎng)絡(luò)連接17
2.1.2 爬蟲(chóng)原理18
2.2 網(wǎng)頁(yè)構(gòu)造21
2.2.1 Chrome瀏覽器的安裝21
2.2.2 網(wǎng)頁(yè)構(gòu)造22
2.2.3 查詢網(wǎng)頁(yè)信息23
第3章 我的第一個(gè)爬蟲(chóng)程序26
3.1 Python第三方庫(kù)26
3.1.1 Python第三方庫(kù)的概念26
3.1.2 Python第三方庫(kù)的安裝方法27
3.1.3 Python第三方庫(kù)的使用方法29
3.2 爬蟲(chóng)三大庫(kù)30
3.2.1 Requests庫(kù)30
3.2.2 BeautifulSoup庫(kù)32
3.2.3 Lxml庫(kù)36
3.3 綜合案例1——爬取北京地區(qū)短租房信息37
3.3.1 爬蟲(chóng)思路分析37
3.3.2 爬蟲(chóng)代碼及分析38
3.4 綜合案例2——爬取酷狗TOP500的數(shù)據(jù)41
3.4.1 爬蟲(chóng)思路分析41
3.4.2 爬蟲(chóng)代碼及分析43
第4章 正則表達(dá)式45
4.1 正則表達(dá)式常用符號(hào)45
4.1.1 一般字符45
4.1.2 預(yù)定義字符集46
4.1.3 數(shù)量詞46
4.1.4 邊界匹配47
4.2 re模塊及其方法48
4.2.1 search()函數(shù)48
4.2.2 sub()函數(shù)49
4.2.3 findall()函數(shù)49
4.2.4 re模塊修飾符51
4.3 綜合案例1——爬取《斗破蒼穹》全文小說(shuō)53
4.3.1 爬蟲(chóng)思路分析53
4.3.2 爬蟲(chóng)代碼及分析55
4.4 綜合案例2——爬取糗事百科網(wǎng)的段子信息56
4.4.1 爬蟲(chóng)思路分析56
4.4.2 爬蟲(chóng)代碼及分析58
第5章 Lxml庫(kù)與Xpath語(yǔ)法63
5.1 Lxml庫(kù)的安裝與使用方法63
5.1.1 Lxml庫(kù)的安裝(Mac、Linux)63
5.1.2 Lxml庫(kù)的使用64
5.2 Xpath語(yǔ)法68
5.2.1 節(jié)點(diǎn)關(guān)系68
5.2.2 節(jié)點(diǎn)選擇70
5.2.3 使用技巧70
5.2.4 性能對(duì)比74
5.3 綜合案例1——爬取豆瓣網(wǎng)圖書(shū)TOP250的數(shù)據(jù)77
5.3.1 將數(shù)據(jù)存儲(chǔ)到CSV文件中77
5.3.2 爬蟲(chóng)思路分析78
5.3.3 爬蟲(chóng)代碼及分析80
5.4 綜合案例2——爬取起點(diǎn)中文網(wǎng)小說(shuō)信息83
5.4.1 將數(shù)據(jù)存儲(chǔ)到Excel文件中83
5.4.2 爬蟲(chóng)思路分析84
5.4.3 爬蟲(chóng)代碼及分析86
第6章 使用API88
6.1 API的使用88
6.1.1 API概述88
6.1.2 API使用方法89
6.1.3 API驗(yàn)證91
6.2 解析JSON數(shù)據(jù)93
6.2.1 JSON解析庫(kù)93
6.2.2 斯必克API調(diào)用94
6.2.3 百度地圖API調(diào)用96
6.3 綜合案例1——爬取PEXELS圖片98
6.3.1 圖片爬取方法98
6.3.2 爬蟲(chóng)思路分析99
6.3.3 爬蟲(chóng)代碼及分析100
6.4 綜合案例2——爬取糗事百科網(wǎng)的用戶地址信息102
6.4.1 地圖的繪制102
6.4.2 爬取思路分析105
6.4.3 爬蟲(chóng)代碼及分析106
第7章 數(shù)據(jù)庫(kù)存儲(chǔ)109
7.1 MongoDB數(shù)據(jù)庫(kù)109
7.1.1 NoSQL概述109
7.1.2 MongoDB的安裝109
7.1.3 MongoDB的使用115
7.2 MySQL數(shù)據(jù)庫(kù)117
7.2.1 關(guān)系型數(shù)據(jù)庫(kù)概述117
7.2.2 MySQL的安裝117
7.2.3 MySQL的使用123
7.3 綜合案例1——爬取豆瓣音樂(lè)TOP250的數(shù)據(jù)126
7.3.1 爬蟲(chóng)思路分析126
7.3.2 爬蟲(chóng)代碼及分析127
7.4 綜合案例2——爬取豆瓣電影TOP250的數(shù)據(jù)132
7.4.1 爬蟲(chóng)思路分析132
7.4.2 爬蟲(chóng)代碼及分析133
第8章 多進(jìn)程爬蟲(chóng)139
8.1 多線程與多進(jìn)程139
8.1.1 多線程和多進(jìn)程概述139
8.1.2 多進(jìn)程使用方法140
8.1.3 性能對(duì)比140
8.2 綜合案例1——爬取簡(jiǎn)書(shū)網(wǎng)熱評(píng)文章143
8.2.1 爬蟲(chóng)思路分析143
8.2.2 爬蟲(chóng)代碼及分析147
8.3 綜合案例2——爬取轉(zhuǎn)轉(zhuǎn)網(wǎng)二手市場(chǎng)商品信息150
8.3.1 爬蟲(chóng)思路分析150
8.3.2 爬蟲(chóng)代碼及分析152
第9章 異步加載159
9.1 異步加載技術(shù)與爬蟲(chóng)方法159
9.1.1 異步加載技術(shù)概述159
9.1.2 異步加載網(wǎng)頁(yè)示例159
9.1.3 逆向工程162
9.2 綜合案例1——爬取簡(jiǎn)書(shū)網(wǎng)用戶動(dòng)態(tài)信息165
9.2.1 爬蟲(chóng)思路分析165
9.2.2 爬蟲(chóng)代碼及分析171
9.3 綜合案例2——爬取簡(jiǎn)書(shū)網(wǎng)7日熱門信息173
9.3.1 爬蟲(chóng)思路分析173
9.3.2 爬蟲(chóng)代碼及分析179
第10章 表單交互與模擬登錄182
10.1 表單交互182
10.1.1 POST方法182
10.1.2 查看網(wǎng)頁(yè)源代碼提交表單182
10.1.3 逆向工程提交表單185
10.2 模擬登錄187
10.2.1 Cookie概述187
10.2.2 提交Cookie模擬登錄187
10.3 綜合案例1——爬取拉勾網(wǎng)招聘信息188
10.3.1 爬蟲(chóng)思路分析188
10.3.2 爬蟲(chóng)代碼及分析193
10.4 綜合案例2——爬取新浪微博好友圈信息195
10.4.1 詞云制作195
10.4.2 爬蟲(chóng)思路分析202
10.4.3 爬蟲(chóng)代碼及分析206
第11章 Selenium模擬瀏覽器209
11.1 Selenium和PhantomJS209
11.1.1 Selenium的概念和安裝209
11.1.2 瀏覽器的選擇和安裝209
11.2 Selenium和PhantomJS的配合使用213
11