Python是數(shù)據(jù)分析的語言,而網絡中的數(shù)據(jù)和信息很多,如何從中獲取需要的數(shù)據(jù)和信息呢?簡單、直接的方法就是用爬蟲技術來解決。本書是一本教初學者學習如何爬取網絡數(shù)據(jù)和信息的入門讀物。書中不僅有Python的相關內容,而且還有數(shù)據(jù)處理和數(shù)據(jù)挖掘等方面的內容。本書內容非常實用,講解時穿插了22個爬蟲實戰(zhàn)案例,可以大大提高讀者的實際動手能力。本書共分12章,核心主題包括Python零基礎語法入門、爬蟲原理和網頁構造、我的第壹個爬蟲程序、正則表達式、Lxml庫與Xpath語法、使用API、數(shù)據(jù)庫存儲、多進程爬蟲、異步加載、表單交互與模擬登錄、Selenium模擬瀏覽器、Scrapy爬蟲框架。此外,書中通過一些典型爬蟲案例,講解了有經緯信息的地圖圖表和詞云的制作方法,讓讀者體驗數(shù)據(jù)背后的樂趣。本書適合爬蟲技術初學者、愛好者及高等院校的相關學生,也適合數(shù)據(jù)爬蟲工程師作為參考讀物,同時也適合各大Python數(shù)據(jù)分析的培訓機構作為教材使用。
詳解網絡爬蟲的原理、工具、框架和方法,內容新,實戰(zhàn)案例多
詳解從簡單網頁到異步加載網頁,從簡單存儲到數(shù)據(jù)庫存儲,從簡單爬蟲到框架爬蟲等技術
22個網絡爬蟲綜合實戰(zhàn)案例、30個網站信息提取、2500余行代碼
詳解爬蟲的3大方法:正則表達式、BeautifulSoup 4庫和Lxml庫
詳解爬取數(shù)據(jù)的4大存儲方式:TXT、CSV、MongoDB和MySQL
詳解Scrapy爬蟲框架的安裝、項目創(chuàng)建、文件使用及爬取數(shù)據(jù)的存儲
隨著Internet的飛速發(fā)展,互聯(lián)網中每天都會產生大量的非結構化數(shù)據(jù)。如何從這些非結構化數(shù)據(jù)中提取有效信息,供人們在學習和工作中使用呢?這個問題促使網絡爬蟲技術應運而生。由于Python語言簡單易用,而且還提供了優(yōu)秀易用的第三方庫和多樣的爬蟲框架,所以使得它成為了網絡爬蟲技術的主力軍。近年來,大數(shù)據(jù)技術發(fā)展迅速,數(shù)據(jù)爬取作為數(shù)據(jù)分析的一環(huán)也顯得尤為重要。程序員要進入與數(shù)據(jù)處理、分析和挖掘等相關的行業(yè),就必須要掌握Python語言及其網絡爬蟲的運用,這樣才能在就業(yè)嚴峻的市場環(huán)境中有較強的職場競爭力和較好的職業(yè)前景。
目前,圖書市場上僅有的幾本Python網絡爬蟲類圖書,要么是國外優(yōu)秀圖書,但書籍翻譯隱晦,閱讀難度大,而且往往由于網絡原因,使得書中的案例不能正常使用,因此不適合初學者;要么是國內資料,但質量參差不齊,而且不成系統(tǒng),同樣不適合初學者。整個圖書市場上還鮮見一本適合初學者閱讀的Python網絡爬蟲類圖書。本書便是基于這個原因而編寫。本書從Python語言基礎講起,然后深入淺出地介紹了爬蟲原理、各種爬蟲技術及22個爬蟲實戰(zhàn)案例。本書全部選用國內網站作為爬蟲案例,便于讀者理解和實現(xiàn),同時也可以大大提高讀者對Python網絡爬蟲項目的實戰(zhàn)能力。
本書特色
1.涵蓋Windows 7系統(tǒng)第三方庫的安裝與配置
本書包含Python模塊源的配置、第三方庫的安裝和使用,以及PyCharm的安裝和使用。
2.對網絡爬蟲技術進行了原理性的分析
本書從一開始便對網絡連接和爬蟲原理做了基本介紹,并對網絡爬蟲的基本流程做了詳細講解,便于讀者理解本書后面章節(jié)中的爬蟲項目案例。
3.內容全面,應用性強
本書介紹了從單線程到多進程,從同步加載到異步加載,從簡單爬蟲到框架爬蟲等一系列爬蟲技術,具有超強的實用性,讀者可以隨時查閱和參考。
4.項目案例典型,實戰(zhàn)性強,有較高的應用價值
本書介紹了22個爬蟲項目實戰(zhàn)案例。這些案例來源于不同的網站頁面,具有很高的應用價值。而且這些案例分別使用了不同的爬蟲技術實現(xiàn),便于讀者融會貫通地理解書中介紹的技術。
本書內容
第1章Python零基礎語法入門
本章介紹了Python和PyCharm的安裝及Python最為簡單的語法基礎,包括簡單的流程控制、數(shù)據(jù)結構、文件操作和面向對象的編程思想。
第2章爬蟲原理和網頁構造
本章通過介紹網絡連接原理,進而介紹了爬蟲的原理,講解了爬蟲的基本流程,另外還介紹了如何使用Chrome瀏覽器認識網頁構造和查詢網頁信息。
第3章我的第一個爬蟲程序
本章主要介紹了安裝請求和解析網頁的Python第三方庫、Requests庫和BeautifulSoup庫的使用方法,最后通過綜合案例手把手教會讀者編寫一個簡單的爬蟲程序。
第4章正則表達式
本章主要介紹了正則表達式的常用符號及Python中re模塊的使用方法,在不需要解析庫的情況下完成一個簡單的爬蟲程序。
第5章Lxml庫與Xpath語法
本章主要介紹了Lxml庫在Mac和Linux環(huán)境中的安裝方法、Lxml庫的使用方法及Xpath語法知識,并且通過案例對正則表達式、BeautifulSoup和Lxml進行了性能對比,最后通過綜合案例鞏固Xpath語言的相關知識。
第6章使用API
本章主要介紹了API的使用和調用方法,對API返回的JSON數(shù)據(jù)進行解析,最后通過使用API完成一些有趣的綜合案例。
第7章數(shù)據(jù)庫存儲
本章主要介紹了非關系型數(shù)據(jù)庫MongoDB和關系型數(shù)據(jù)庫MySQL的相關知識,并通過綜合案例展示了Python對兩種數(shù)據(jù)庫的存儲方法。
第8章多進程爬蟲
本章主要介紹了多線程及其概念,并通過案例對串行爬蟲和多進程爬蟲的性能進行了對比,最后通過綜合案例介紹了多進程爬取數(shù)據(jù)的方法和技巧。
第9章異步加載
本章主要介紹了異步加載的基本概念,以及如何針對異步加載網頁使用逆向工程抓取數(shù)據(jù),最后通過綜合案例講解了逆向工程的使用方法和常用技巧。
第10章表單交互與模擬登錄
本章主要介紹了Requests庫的POST方法,通過觀測表單源代碼和逆向工程來填寫表單以獲取網頁信息,以及通過提交cookie信息來模擬登錄網站。
第11章Selenium模擬瀏覽器
本章主要介紹了Selenium模塊的安裝、Selenium瀏覽器的選擇和安裝,以及Selenium模塊的使用方法,最后通過綜合案例介紹了如何對采用異步加載技術的網頁進行爬蟲。
第12章Scrapy爬蟲框架
本章主要介紹了Windows 7環(huán)境中的Scrapy安裝和創(chuàng)建爬蟲項目的過程,并通過案例詳細講解了各個Scrapy文件的作用和使用方法,而且通過多個綜合案例講解了如何通過Scrapy爬蟲框架把數(shù)據(jù)存儲到不同類型的文件中,最后講解了如何編寫跨頁面網站的爬蟲代碼。
本書讀者對象
�8�5數(shù)據(jù)爬蟲初學者;
�8�5數(shù)據(jù)分析初級人員;
�8�5網絡爬蟲愛好者;
�8�5數(shù)據(jù)爬蟲工程師;
�8�5 Python初級開發(fā)人員;
�8�5需要提高動手能力的爬蟲技術人員;
�8�5高等院校的相關學生。
本書配套資源及獲取方式
本書涉及的源代碼文件等配套學習資源需要讀者自行下載。請登錄機械工業(yè)出版社華章公司的網站www.hzbook.com,然后搜索到本書頁面,按照頁面上的說明進行下載即可。
雖然我們對書中所述內容都盡量核實,并多次進行文字校對,但因時間有限,加之水平所限,書中疏漏和錯誤之處在所難免,敬請廣大讀者批評、指正。聯(lián)系我們請發(fā)E-mail到hzbook2017 163.com。
編著者
目錄
前言
第1章 Python零基礎語法入門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ù)結構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 關閉文件13
1.6 Python面向對象13
1.6.1 定義類14
1.6.2 實例屬性14
1.6.3 實例方法15
1.6.4 類的繼承16
第2章 爬蟲原理和網頁構造17
2.1 爬蟲原理17
2.1.1 網絡連接17
2.1.2 爬蟲原理18
2.2 網頁構造21
2.2.1 Chrome瀏覽器的安裝21
2.2.2 網頁構造22
2.2.3 查詢網頁信息23
第3章 我的第一個爬蟲程序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章 正則表達式45
4.1 正則表達式常用符號45
4.1.1 一般字符45
4.1.2 預定義字符集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——爬取糗事百科網的段子信息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é)點關系68
5.2.2 節(jié)點選擇70
5.2.3 使用技巧70
5.2.4 性能對比74
5.3 綜合案例1——爬取豆瓣網圖書TOP250的數(shù)據(jù)77
5.3.1 將數(shù)據(jù)存儲到CSV文件中77
5.3.2 爬蟲思路分析78
5.3.3 爬蟲代碼及分析80
5.4 綜合案例2——爬取起點中文網小說信息83
5.4.1 將數(shù)據(jù)存儲到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驗證91
6.2 解析JSON數(shù)據(jù)93
6.2.1 JSON解析庫93
6.2.2 斯必克API調用94
6.2.3 百度地圖API調用96
6.3 綜合案例1——爬取PEXELS圖片98
6.3.1 圖片爬取方法98
6.3.2 爬蟲思路分析99
6.3.3 爬蟲代碼及分析100
6.4 綜合案例2——爬取糗事百科網的用戶地址信息102
6.4.1 地圖的繪制102
6.4.2 爬取思路分析105
6.4.3 爬蟲代碼及分析106
第7章 數(shù)據(jù)庫存儲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 關系型數(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章 多進程爬蟲139
8.1 多線程與多進程139
8.1.1 多線程和多進程概述139
8.1.2 多進程使用方法140
8.1.3 性能對比140
8.2 綜合案例1——爬取簡書網熱評文章143
8.2.1 爬蟲思路分析143
8.2.2 爬蟲代碼及分析147
8.3 綜合案例2——爬取轉轉網二手市場商品信息150
8.3.1 爬蟲思路分析150
8.3.2 爬蟲代碼及分析152
第9章 異步加載159
9.1 異步加載技術與爬蟲方法159
9.1.1 異步加載技術概述159
9.1.2 異步加載網頁示例159
9.1.3 逆向工程162
9.2 綜合案例1——爬取簡書網用戶動態(tài)信息165
9.2.1 爬蟲思路分析165
9.2.2 爬蟲代碼及分析171
9.3 綜合案例2——爬取簡書網7日熱門信息173
9.3.1 爬蟲思路分析173
9.3.2 爬蟲代碼及分析179
第10章 表單交互與模擬登錄182
10.1 表單交互182
10.1.1 POST方法182
10.1.2 查看網頁源代碼提交表單182
10.1.3 逆向工程提交表單185
10.2 模擬登錄187
10.2.1 Cookie概述187
10.2.2 提交Cookie模擬登錄187
10.3 綜合案例1——爬取拉勾網招聘信息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