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