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