Python 項目案例開發從入門到實戰 — 爬蟲、游戲和機器學習

鄭秋生、夏敏捷、尚展壘

  • Python 項目案例開發從入門到實戰 — 爬蟲、游戲和機器學習-preview-1
  • Python 項目案例開發從入門到實戰 — 爬蟲、游戲和機器學習-preview-2
  • Python 項目案例開發從入門到實戰 — 爬蟲、游戲和機器學習-preview-3
Python 項目案例開發從入門到實戰 — 爬蟲、游戲和機器學習-preview-1

買這商品的人也買了...

商品描述

本書由Python基礎開發入手,延伸至爬蟲技術開發、游戲開發、人工智能開發、網絡應用開發、圖像處理和可視化開發6個Python經典開發方向; 全書共提供25個項目案例,以項目驅動方式展開各知識點的講解,將Python知識點分解到不同案例、不同章節,致力於Python技術的應用實踐。 本書案例均從特定領域的技術基礎開始,展示項目設計思想和設計理念,從而啟發讀者的創新思維,達到舉一反三、將技術應用與實戰結合的目的。項目案例的選取具有較高的實用性,包含校園網搜索引擎、小小翻譯器、模擬登錄、爬取豆瓣影評生成詞雲等爬蟲方向案例,基於樸素貝葉斯算法的文本分類、基於捲積神經網絡的手寫體識別、基於OpenCV實現人臉識別等面向機器學習的案例,連連看、推箱子、兩人麻將、中國象棋、網絡五子棋、人物拼圖等大家耳熟能詳的游戲案例。書中不僅列出了案例的完整代碼,而且對所有的源代碼進行了非常詳細的解釋,做到通俗易懂、圖文並茂。 本書面向Python初學者,也適用於Python項目開發人員和游戲編程愛好者。

目錄大綱

 

 

 

 

目錄

 

 

 

程序源碼

 

 

 

 

 

第一篇Python基礎開發

 

 

 

第1章

Python基礎知識

 

1.1Python語言簡介

 

1.2Python語法基礎

 

1.2.1Python數據類型

 

1.2.2序列數據結構

 

1.2.3Python控制語句

 

1.2.4Python函數與模塊

 

1.3Python面向對象設計

 

1.3.1定義和使用類

 

1.3.2構造函數

 

1.3.3析構函數

 

1.3.4實例屬性和類屬性

 

1.3.5私有成員與公有成員

 

1.3.6方法

 

1.3.7類的繼承

 

1.3.8多態

 

1.3.9面向對象設計應用案例——撲克牌發牌程序

 

1.4Python圖形界面設計

 

1.4.1創建Windows窗口

 

1.4.2幾何佈局管理器

 

1.4.3Tkinter組件

 

1.4.4Tkinter字體

 

1.4.5Python事件處理

 

1.4.6圖形界面設計應用案例——開發猜數字游戲

 

1.5Python文件的使用

 

1.5.1打開/建立文件

 

1.5.2讀取文本文件

 

1.5.3寫文本文件

 

1.5.4文件內移動

 

1.5.5文件的關閉

 

1.5.6二進制文件的讀/寫

 

1.6Python的第三方庫

 

 

 

 

 

 

 

第2章

 

序列應用——猜單詞游戲

 

2.1猜單詞游戲功能介紹

 

2.2程序設計的思路

 

2.3關鍵技術——random模塊

 

2.4程序設計的步驟

 

 

 

第3章

 

數據庫應用——智力問答測試

 

3.1智力問答測試功能介紹

 

3.2程序設計的思路

 

3.3關鍵技術

 

3.3.1訪問數據庫的步驟

 

3.3.2創建數據庫和表

 

3.3.3數據庫的插入、更新和刪除操作

 

3.3.4數據庫表的查詢操作

 

3.3.5數據庫使用實例——學生通訊錄

 

3.4程序設計的步驟

 

3.4.1生成試題庫

 

3.4.2讀取試題信息

 

3.4.3界面和邏輯設計

 

第二篇爬蟲技術開發

 

 

 

第4章

調用百度API應用——小小翻譯器

 

4.1小小翻譯器功能介紹

 

4.2程序設計的思路

 

4.3關鍵技術

 

4.3.1urllib庫簡介

 

4.3.2urllib庫的基本使用

 

4.3.3JSON使用

 

4.4程序設計的步驟

 

4.4.1設計界面

 

4.4.2使用百度翻譯開放平臺API

 

4.5API調用拓展——爬取天氣預報信息

 

 

 

第5章

 

爬蟲應用——校園網搜索引擎

 

5.1校園網搜索引擎功能分析

 

5.2校園網搜索引擎系統設計

 

5.3關鍵技術

 

5.3.1正則表達式

 

5.3.2中文分詞

 

5.3.3安裝和使用jieba

 

5.3.4為jieba添加自定義詞典

 

5.3.5文本分類的關鍵詞提取

 

5.3.6deque

 

5.4程序設計的步驟

 

5.4.1信息採集模塊——網絡爬蟲的實現

 

5.4.2索引模塊——建立倒排詞表

 

5.4.3網頁排名和搜索模塊

 

 

 

第6章

 

爬蟲應用——爬取百度圖片

 

6.1程序功能介紹

 

6.2程序設計的思路

 

6.3關鍵技術

 

6.3.1圖片文件下載到本地

 

6.3.2爬取指定網頁中的圖片

 

6.3.3BeautifulSoup庫概述

 

6.3.4用BeautifulSoup庫操作解析HTML文檔樹

 

6.3.5requests庫的使用

 

6.4程序設計的步驟

 

6.4.1分析網頁源代碼和網頁結構

 

6.4.2設計代碼

 

6.5動態網頁爬蟲拓展——爬取今日頭條新聞

 

6.5.1找到JavaScript請求的數據接口

 

6.5.2分析JSON數據

 

6.5.3請求和解析數據接口

 

 

 

第7章

 

selenium操作瀏覽器應用——模擬登錄

 

7.1模擬登錄程序功能介紹

 

7.2程序設計的思路

 

7.3關鍵技術

 

7.3.1安裝selenium庫

 

7.3.2selenium詳細用法

 

7.3.3selenium應用實例

 

7.4程序設計的步驟

 

7.4.1selenium定位iframe(多層框架)

 

7.4.2模擬登錄豆瓣網站

 

7.5基於Cookie繞過驗證碼實現自動登錄

 

7.5.1為什麽要使用Cookie

 

7.5.2查看Cookie

 

7.5.3使用Cookie繞過百度驗證碼自動登錄賬戶

 

7.6selenium實現AJAX動態加載抓取今日頭條新聞

 

7.6.1selenium處理滾動條

 

7.6.2selenium 動態加載抓取今日頭條新聞

 

7.7selenium實現動態加載抓取新浪國內新聞

 

 

 

第8章

 

MySQL數據庫存儲——微博採集爬蟲

 

8.1微博採集爬蟲功能介紹

 

8.2微博採集爬蟲設計思路

 

8.3關鍵技術

 

8.3.1查看Cookie

 

8.3.2模擬登錄實例

 

8.3.3使用Python操作MySQL數據庫

 

8.3.4Base64加密

 

8.4程序設計步驟

 

8.4.1模擬登錄

 

8.4.2獲取網頁

 

8.4.3數據入庫

 

 

 

 

第9章

 

爬蟲框架——Scrapy框架

 

9.1Scrapy框架簡介與安裝

 

9.1.1Scrapy框架簡介

 

9.1.2Scrapy安裝

 

9.2第一個Scrapy爬蟲

 

9.2.1項目需求 

 

9.2.2創建項目

 

9.2.3分析頁面

 

9.2.4定義數據類

 

9.2.5實現爬蟲

 

9.2.6配置爬蟲

 

9.2.7運行爬蟲

 

9.3Spider開發流程

 

9.3.1繼承scrapy.Spider

 

9.3.2為Spider起名字

 

9.3.3設置起始爬取點

 

9.3.4實現頁面解析函數

 

9.4Scrapy選擇器

 

9.4.1Selector類

 

9.4.2Response內置Selector

 

9.4.3使用CSS選擇器

 

9.4.4爬取京東商品信息

 

9.5Scrapy數據容器

 

9.5.1Item和Field

 

9.5.2Item擴展

 

9.5.3爬取“百度貼吧”信息

 

9.6Scrapy常用命令行工具

 

9.6.1全局命令

 

9.6.2項目命令

 

9.7Scrapy數據處理

 

9.7.1實現Item Pipeline

 

9.7.2Item Pipeline舉例

 

9.7.3啟用Item Pipeline

 

9.8爬取文件和圖片

 

9.8.1FilesPipeline

 

9.8.2FilesPipeline實例

 

9.8.3ImagesPipeline

 

9.8.4爬取百度圖片

 

9.9Scrapy模擬登錄

 

9.9.1模擬登錄分析

 

9.9.2代碼實現

 

第三篇游 戲 開 發

 

 

 

第10章

益智游戲——連連看游戲

 

10.1連連看游戲介紹

 

10.2程序設計的思路

 

10.3關鍵技術

 

10.3.1圖形繪制——Tinker的Canvas組件

 

10.3.2Canvas上的圖形對象

 

10.4程序設計的步驟

 

 

 

第11章

 

益智游戲——推箱子游戲

 

11.1推箱子游戲介紹

 

11.2程序設計的思路

 

11.3關鍵技術

 

11.4程序設計的步驟

 

 

 

第12章

 

娛樂游戲——兩人麻將游戲

 

12.1麻將游戲介紹

 

12.1.1麻將術語

 

12.1.2牌數

 

12.2兩人麻將游戲設計的思路

 

12.2.1素材圖片

 

12.2.2游戲的邏輯實現

 

12.2.3碰/吃牌的判斷

 

12.2.4和牌算法

 

12.2.5實現電腦智能出牌

 

12.3關鍵技術

 

12.3.1聲音的播放

 

12.3.2返回對應位置的組件

 

12.3.3對保存麻將牌的列表排序

 

12.4兩人麻將游戲設計的步驟

 

12.4.1設計麻將牌類

 

12.4.2設計游戲主程序

 

 

 

第13章

 

娛樂游戲——貪吃蛇游戲

 

13.1貪吃蛇游戲介紹

 

13.2程序設計的思路

 

13.3程序設計的步驟

 

13.3.1Grid類(場地類)

 

13.3.2Food類(豆類)

 

13.3.3Snake(蛇類)

 

13.3.4SnakeGame(游戲邏輯類)

 

 

 

第14章

 

益智游戲——人機對戰黑白棋游戲

 

14.1黑白棋游戲介紹

 

14.2黑白棋游戲設計的思路

 

14.3程序設計的步驟

 

 

 

第15章

 

益智游戲——中國象棋游戲

 

15.1中國象棋介紹

 

15.2關鍵技術

 

15.3中國象棋游戲的設計思路

 

15.4中國象棋游戲的實現步驟

 

 

 

第16章

 

娛樂游戲——人物拼圖游戲

 

16.1人物拼圖游戲介紹

 

16.2程序設計的思路

 

16.3關鍵技術

 

16.3.1復制和粘貼圖像區域

 

16.3.2調整尺寸和旋轉

 

16.3.3轉換成灰度圖像

 

16.3.4對像素進行操作

 

16.4程序設計的步驟

 

16.4.1Python處理圖片切割

 

16.4.2游戲的邏輯實現

 

 

第17章

基於Pygame的游戲設計

 

17.1Pygame基礎知識

 

17.1.1安裝Pygame庫

 

17.1.2Pygame的模塊

 

17.2Pygame的使用

 

17.2.1Pygame開發游戲的主要流程

 

17.2.2Pygame的圖像/圖形繪制

 

17.2.3Pygame的鍵盤和鼠標事件的處理

 

17.2.4Pygame的字體使用

 

17.2.5Pygame的聲音播放

 

17.2.6Pygame的精靈使用

 

17.3基於Pygame設計貪吃蛇游戲

 

17.4基於Pygame設計飛機大戰游戲

 

17.4.1游戲角色

 

17.4.2游戲界面顯示

 

17.4.3游戲的邏輯實現

 

第四篇人工智能開發

 

 

 

第18章

機器學習案例——基於樸素貝葉斯算法的

文本分類

 

18.1文本分類功能介紹

 

18.2程序設計的思路

 

18.3關鍵技術

 

18.3.1貝葉斯算法的理論基礎

 

18.3.2樸素貝葉斯分類

 

18.3.3使用Python進行文本分類

 

18.4程序設計的步驟

 

18.4.1收集訓練數據

 

18.4.2準備數據

 

18.4.3分析數據

 

18.4.4訓練算法

 

18.4.5測試算法並改進

 

18.4.6使用算法進行文本分類

 

18.5使用樸素貝葉斯分類算法過濾垃圾郵件

 

18.5.1收集訓練數據

 

18.5.2將文本文件解析為詞向量

 

18.5.3使用樸素貝葉斯算法進行郵件分類

 

18.5.4改進算法

 

18.6使用ScikitLearn庫進行文本分類

 

18.6.1文本分類常用的類和函數

 

18.6.2案例實現

 

 

 

第19章

 

深度學習案例——基於捲積神經網絡的

手寫體識別

 

19.1手寫體識別案例需求

 

19.2深度學習的概念及關鍵技術

 

19.2.1神經網絡模型

 

19.2.2深度學習之捲積神經網絡

 

19.3Python深度學習庫——Keras

 

19.3.1Keras的安裝

 

19.3.2Keras的網絡層

 

19.3.3用Keras構建神經網絡

 

19.4程序設計的思路

 

19.5程序設計的步驟

 

19.5.1MNIST數據集

 

19.5.2手寫體識別案例實現

 

19.5.3製作自己的手寫圖像

 

 

 

第20章

 

人工智能實戰——基於OpenCV實現人臉識別

 

20.1功能介紹

 

20.2程序設計的思路

 

20.3關鍵技術

 

20.3.1OpenCV基礎知識

 

20.3.2OpenCV變換操作

 

20.3.3檢測人臉

 

20.4程序設計的步驟

 

20.4.1檢測人臉

 

20.4.2獲取人臉檢測信息和對應標簽

 

20.4.3識別器訓練

 

20.4.4識別人臉

 

20.5知識拓展——使用Face_Recognition庫輕松實現人臉識別

 

20.5.1Face_Recognition庫安裝

 

20.5.2Face_Recognition檢測識別人臉

 

第五篇網絡應用開發

 

 

 

第21章

網絡編程案例——基於TCP的在線聊天程序

 

21.1基於TCP的在線聊天程序簡介

 

21.2關鍵技術

 

21.2.1互聯網TCP/IP

 

21.2.2IP和埠

 

21.2.3TCP和UDP

 

21.2.4Socket

 

21.2.5多線程編程

 

21.3在線聊天程序設計的步驟

 

21.3.1在線聊天程序的服務器端

 

21.3.2在線聊天程序的客戶端

 

 

 

第22章

 

網絡通信案例——基於UDP的網絡五子棋游戲

 

22.1網絡五子棋游戲簡介

 

22.2五子棋游戲的設計思想

 

22.3關鍵技術

 

22.3.1UDP編程

 

22.3.2自定義網絡五子棋游戲的通信協議

 

22.4網絡五子棋游戲程序設計的步驟

 

22.4.1服務器端程序設計的步驟

 

22.4.2客戶端程序設計的步驟

 

 

 

第23章

 

網絡郵件實戰——自動發送郵件

 

23.1功能介紹

 

23.2程序設計的思路

 

23.3關鍵技術

 

23.3.1Python SMTP發送郵件

 

23.3.2Python SMTP發送文本郵件

 

23.3.3Python SMTP發送帶附件的郵件

 

23.3.4Python SMTP發送內嵌資源的郵件

 

23.3.5定時自動發送郵件

 

23.4程序設計的步驟

 

第六篇圖像處理和可視化開發

 

 

 

第24章

圖像處理——生成二維碼和驗證碼

 

24.1二維碼介紹

 

24.2二維碼生成和解析關鍵技術

 

24.2.1qrcode庫的使用

 

24.2.2PIL庫的使用

 

24.3二維碼生成和解析程序設計的步驟

 

24.3.1生成帶有圖標的二維碼

 

24.3.2Python解析二維碼圖片

 

24.4用Python生成驗證碼圖片

 

 

 

第25章

 

可視化應用——學生成績分佈柱狀圖展示

 

25.1程序功能介紹

 

25.2程序設計的思路

 

25.3關鍵技術

 

25.3.1Python的第三方庫Matplotlib

 

25.3.2Matplotlib.pyplot模塊——快速繪圖

 

25.3.3繪制條形圖、餅狀圖、散點圖

 

25.3.4Python操作Excel文檔

 

25.4程序設計的步驟

 

 

 

第26章

 

詞雲實戰——爬取豆瓣影評生成詞雲

 

26.1功能介紹

 

26.2程序設計的思路

 

26.3關鍵技術

 

26.3.1安裝WordCloud

 

26.3.2使用WordCloud

 

26.4程序設計的步驟

 

 

 

參考文獻