Python 3.x網(wǎng)絡(luò)爬蟲從零基礎(chǔ)到項(xiàng)目實(shí)戰(zhàn)
《Python 3.x網(wǎng)絡(luò)爬蟲從零基礎(chǔ)到項(xiàng)目實(shí)戰(zhàn)》介紹了如何使用Python來編寫網(wǎng)絡(luò)爬蟲程序,內(nèi)容包括網(wǎng)絡(luò)爬蟲簡介、發(fā)送請求、提取數(shù)據(jù)、使用多個(gè)線程和進(jìn)程進(jìn)行并發(fā)抓取、抓取動態(tài)頁面中的內(nèi)容、與表單進(jìn)行交互、處理頁面中的驗(yàn)證碼問題及使用Scrapy和分布式進(jìn)行數(shù)據(jù)抓取,并在最后介紹了使用本書講解的數(shù)據(jù)抓取技術(shù)對幾個(gè)真實(shí)的網(wǎng)站進(jìn)行抓取的實(shí)例,旨在幫助讀者活學(xué)活用書中介紹的技術(shù)。
本書提供了與圖書內(nèi)容全程同步的教學(xué)錄像。此外,還贈送了大量相關(guān)學(xué)習(xí)資料,以便讀者擴(kuò)展學(xué)習(xí)。
本書適合任何想學(xué)習(xí)Python爬蟲的讀者,無論您是否從事計(jì)算機(jī)相關(guān)專業(yè),是否接觸過Python,均可以通過學(xué)習(xí)本書快速掌握Python爬蟲的開發(fā)方法和技巧。
● 案例完整
本書中的所有案例都是通過“理論講解 + 環(huán)境搭建 + 完整代碼及分析 + 運(yùn)行結(jié)果”這種完善的結(jié)構(gòu)進(jìn)行講解的。此外,復(fù)雜的案例配有項(xiàng)目結(jié)構(gòu)圖,有難度的案例還分析了底層源碼,并且對于所有案例的講解,都考慮到了讀者可能會遇到的各種問題。
● 案例經(jīng)典實(shí)用
本書中的案例大多是由真實(shí)項(xiàng)目簡化而來的,既體現(xiàn)了所述知識點(diǎn)的精華,又屏蔽了無關(guān)技術(shù)的干擾。此外,本書在案例講解時(shí),也充分考量了相關(guān)知識的各種實(shí)際應(yīng)用場景,將同一個(gè)技術(shù)在多個(gè)場景下的不同角色都做了充分的講解。
● 進(jìn)階的必學(xué)技術(shù)一網(wǎng)打盡
本書講解的爬蟲分析、發(fā)送請求、數(shù)據(jù)提取、數(shù)據(jù)存儲、并發(fā)爬蟲和分布式爬蟲等技術(shù)是每一位爬蟲程序員在進(jìn)階路上的必學(xué)知識。本書將這些技術(shù)的核心要點(diǎn)進(jìn)行了深入細(xì)致的講解,可以幫助讀者盡快取得技術(shù)上的突破。
● 系統(tǒng)講解前沿稀缺知識
本書中介紹的Selenium和Scrapy等技術(shù),均被國內(nèi)外各大互聯(lián)網(wǎng)公司大量使用,但目前這些技術(shù)的相關(guān)資料卻少之又少,實(shí)戰(zhàn)型的書籍更是匱乏。本書對這些學(xué)習(xí)資源相對稀缺,但同時(shí)又是經(jīng)典必學(xué)的知識進(jìn)行了較為系統(tǒng)的講解,非常有助于讀者快速提升自己已有的知識體系。
● 文字通俗易懂
本書的作者不僅有著多年的開發(fā)經(jīng)驗(yàn),還承擔(dān)過多年的技術(shù)講師及教學(xué)管理工作,非常擅長用清晰易懂的文字闡述各種難點(diǎn)技術(shù)。
史衛(wèi)亞,博士,副教授,IEEE會員,CCF會員,INNS會員。2009年獲得復(fù)旦大學(xué)計(jì)算機(jī)應(yīng)用專業(yè)博士學(xué)位。2015—2016年在美國北卡羅來納大學(xué)做訪問學(xué)者,對機(jī)器學(xué)習(xí)、大數(shù)據(jù)檢索、數(shù)據(jù)庫、圖像和視頻處理、人工智能和模式識別等有深入研究。
目錄
第1章 爬蟲基礎(chǔ) 1
1.1 認(rèn)識爬蟲 2
1.2 Python環(huán)境 4
1.3 Python語法 11
1.4 網(wǎng)頁結(jié)構(gòu) 62
1.5 HTTP協(xié)議 68
1.6 本章小結(jié) 84
1.7 實(shí)戰(zhàn)練習(xí) 84
第2章 開始爬蟲 85
2.1 urllib模塊 86
2.2 requests模塊 88
2.3 re模塊 110
2.4 項(xiàng)目案例:爬百度貼吧 122
2.5 本章小結(jié) 128
2.6 實(shí)戰(zhàn)練習(xí) 128
第3章 更多數(shù)據(jù)提取的方式 129
3.1 XPath和LXml 130
3.2 BeautifulSoup4 137
3.3 JsonPath 143
3.4 性能和選擇 148
3.5 項(xiàng)目案例:爬騰訊招聘網(wǎng) 148
3.6 本章小結(jié) 154
3.7 實(shí)戰(zhàn)練習(xí) 154
第4章 并發(fā) 155
4.1 100萬個(gè)網(wǎng)頁 156
4.2 進(jìn)程 161
4.3 線程 181
4.4 鎖 191
4.5 協(xié)程 202
4.6 線程、進(jìn)程、協(xié)程對比 206
4.7 并發(fā)爬蟲 207
4.8 本章小結(jié) 216
4.9 實(shí)戰(zhàn)練習(xí) 216
第5章 數(shù)據(jù)存儲 217
5.1 文件存儲 218
5.2 關(guān)系型數(shù)據(jù)庫存儲 221
5.3 非關(guān)系型數(shù)據(jù)庫存儲 231
5.4 項(xiàng)目案例:爬豆瓣電影 266
5.5 本章小結(jié) 270
5.6 實(shí)戰(zhàn)練習(xí) 270
第6章 Ajax數(shù)據(jù)爬取 271
6.1 Ajax的概念 272
6.2 實(shí)現(xiàn)Ajax 272
6.3 項(xiàng)目案例:爬斗魚直播 282
6.4 本章小結(jié) 286
6.5 實(shí)戰(zhàn)練習(xí) 286
第7章 動態(tài)渲染頁面爬取 287
7.1 Selenium 288
7.2 項(xiàng)目案例:爬京東商品 306
7.3 本章小結(jié) 311
7.4 實(shí)戰(zhàn)練習(xí) 312
第8章 圖形驗(yàn)證碼識別 313
8.1 使用pytesseract 314
8.2 使用打碼平臺 317
8.3 項(xiàng)目案例:識別驗(yàn)證碼完成登錄 323
8.4 本章小結(jié) 326
8.5 實(shí)戰(zhàn)練習(xí) 326
第9章 模擬登錄 327
9.1 Cookie 328
9.2 Session 330
9.3 Cookie池的搭建 332
9.4 項(xiàng)目案例:登錄GitHub 335
9.5 本章小結(jié) 340
9.6 實(shí)戰(zhàn)練習(xí) 340
第10章 代理IP的使用 341
10.1 代理IP 342
10.2 代理IP池 348
10.3 付費(fèi)代理的使用 351
10.4 項(xiàng)目案例:使用代理IP爬微信公眾號 358
10.5 本章小結(jié) 368
10.6 實(shí)戰(zhàn)練習(xí) 368
第11章 Scrapy框架 369
11.1 認(rèn)識Scrapy 370
11.2 編寫Scrapy的第一個(gè)案例 373
11.3 Spider詳情 384
11.4 操作數(shù)據(jù) 403
11.5 模擬登錄 432
11.6 中間件 446
11.7 分布式 458
11.8 項(xiàng)目案例:爬新浪新聞 500
11.9 本章小結(jié) 510
11.10 實(shí)戰(zhàn)練習(xí) 510
第12章 項(xiàng)目案例:爬;ňW(wǎng)信息 511
12.1 分析網(wǎng)站 512
12.2 開始爬取 515
第13章 項(xiàng)目案例:爬北京地區(qū)短租房信息 523
13.1 分析網(wǎng)站 524
13.2 開始爬取 525
第14章 項(xiàng)目案例:爬簡書專題信息 531
14.1 分析網(wǎng)站 532
14.2 開始爬取 535
第15章 項(xiàng)目案例:爬QQ音樂歌曲 539
15.1 分析網(wǎng)站 540
15.2 開始爬取 542
第16章 項(xiàng)目案例:爬百度翻譯 545
16.1 分析網(wǎng)站 546
16.2 開始爬取 550
第17章 項(xiàng)目案例:爬百度地圖API 555
17.1 分析網(wǎng)站 556
17.2 開始爬取 560
第18章 項(xiàng)目案例:爬360圖片 571
18.1 分析網(wǎng)站 572
18.2 開始爬取 573
第19章 項(xiàng)目案例:爬當(dāng)當(dāng)網(wǎng) 577
19.1 分析網(wǎng)站 578
19.2 開始爬取 580
第20章 項(xiàng)目案例:爬唯品會 585
20.1 分析網(wǎng)站 586
20.2 開始爬取 589
第21章 項(xiàng)目案例:爬智聯(lián)招聘 593
21.1 分析網(wǎng)站 594
21.2 開始爬取 597