《Python基礎(chǔ)案例教程》第8章(微課版)課件_第1頁(yè)
《Python基礎(chǔ)案例教程》第8章(微課版)課件_第2頁(yè)
《Python基礎(chǔ)案例教程》第8章(微課版)課件_第3頁(yè)
《Python基礎(chǔ)案例教程》第8章(微課版)課件_第4頁(yè)
《Python基礎(chǔ)案例教程》第8章(微課版)課件_第5頁(yè)
已閱讀5頁(yè),還剩56頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

《Python基礎(chǔ)案例教程》(微課版)第8章Python編程實(shí)戰(zhàn)林文明第8章Python編程實(shí)戰(zhàn)Python語(yǔ)言強(qiáng)大之處在于它擁有眾多的第三方庫(kù),構(gòu)建起了一個(gè)龐大的生態(tài)圈。比如在網(wǎng)頁(yè)開發(fā)、網(wǎng)絡(luò)編程、網(wǎng)絡(luò)爬蟲、云計(jì)算、人工智能、自動(dòng)化運(yùn)維、科學(xué)計(jì)算以及游戲開發(fā)等領(lǐng)域,都可以非常方便地使用Python編寫程序解決問(wèn)題,這使得Python幾乎無(wú)所不能。本章主要介紹Python爬蟲、數(shù)據(jù)處理以及人工智能幾個(gè)方面的應(yīng)用。通過(guò)三個(gè)較大的實(shí)戰(zhàn)項(xiàng)目,經(jīng)歷程序開發(fā)的完整過(guò)程,學(xué)習(xí)在第三方庫(kù)的幫助下,解決較為復(fù)雜的實(shí)際問(wèn)題。教學(xué)內(nèi)容01新書推薦榜02就業(yè)信息管理03人臉識(shí)別考勤系統(tǒng)目錄CONTENTS8.1.1項(xiàng)目分析李明作為學(xué)校讀書會(huì)的成員,需要定期向同學(xué)們推薦新書。當(dāng)當(dāng)網(wǎng)定期根據(jù)銷售及評(píng)論數(shù)據(jù),更新許多圖書榜單,其中有各類新書榜單,這正是李明同學(xué)所需要的。一般做法是,復(fù)制每本書的相關(guān)信息,保存下來(lái),但是這種方法費(fèi)時(shí)費(fèi)力,能否通過(guò)Python編寫程序,自動(dòng)從當(dāng)當(dāng)網(wǎng)的榜單頁(yè)面,提取其中的書名、作者、出版社等信息,生成自己的新書推薦榜單呢?新書推薦榜8.1.1項(xiàng)目分析新書推薦榜如何編寫一個(gè)網(wǎng)絡(luò)爬蟲程序,自動(dòng)訪問(wèn)當(dāng)當(dāng)網(wǎng)的新書榜單頁(yè)面?如何將HTML頁(yè)面中指定的信息提取出來(lái)?提出問(wèn)題分析目標(biāo)頁(yè)面8.1.1項(xiàng)目分析新書推薦榜

從頁(yè)面中可以看出,榜單共有25頁(yè),每頁(yè)20本,共列出了500本圖書信息。單擊某個(gè)頁(yè)碼,網(wǎng)址最后一個(gè)數(shù)字會(huì)變化,根據(jù)這個(gè)規(guī)則,即可得到每個(gè)頁(yè)面的URL地址頁(yè)碼圖書信息URL地址1第1~20條/books/newhotsales/01.05.00.00.00.00-recent7-0-0-1-12第21~30條/books/newhotsales/01.05.00.00.00.00-recent7-0-0-1-25第81~100條/books/newhotsales/01.05.00.00.00.00-recent7-0-0-1-5確定信息需求8.1.1項(xiàng)目分析新書推薦榜圖書信息標(biāo)簽類型標(biāo)簽層級(jí)位置書名<a>標(biāo)簽li>>a作者<a>標(biāo)簽li>div.publisher_info>a出版社<a>標(biāo)簽li>div.publisher_info>a推薦指數(shù)<span>標(biāo)簽li>div.star>span.tuijian例如:書名“2020武漢日記…”文字是一個(gè)<a>標(biāo)簽,其父標(biāo)簽是一個(gè)名為name的div標(biāo)簽,再往上級(jí)是一個(gè)li標(biāo)簽,通過(guò)這些層級(jí)關(guān)系,就可以準(zhǔn)確定位一個(gè)標(biāo)簽在HTML代碼中的位置。明確項(xiàng)目目標(biāo)8.1.1項(xiàng)目分析新書推薦榜(1)根據(jù)榜單頁(yè)碼規(guī)則,拼接每頁(yè)的URL地址;(2)向服務(wù)器發(fā)送HTTP請(qǐng)求;(3)獲取反饋結(jié)果,取出圖書信息部分源碼;(4)解析出每本書的書名、作者、出版社、推薦指數(shù);(5)將每本書的信息保存到列表中,并顯示出來(lái)。知識(shí)準(zhǔn)備8.1.1項(xiàng)目分析新書推薦榜1.網(wǎng)絡(luò)爬蟲的工作過(guò)程

網(wǎng)絡(luò)爬蟲工作過(guò)程如圖8.4所示,首先由客戶端爬蟲程序向目標(biāo)網(wǎng)站服務(wù)器發(fā)送一個(gè)URL請(qǐng)求,服務(wù)器返回一個(gè)HTML頁(yè)面,客戶端爬蟲程序解析出需要的數(shù)據(jù),保存起來(lái),再向服務(wù)器發(fā)送下一個(gè)URL請(qǐng)求,如此循環(huán)往復(fù),直至爬取所需的全部頁(yè)面。知識(shí)準(zhǔn)備8.1.1項(xiàng)目分析新書推薦榜2.發(fā)送HTTP請(qǐng)求網(wǎng)絡(luò)爬蟲程序工作的第一步是向目標(biāo)網(wǎng)站發(fā)起HTTP請(qǐng)求。Python中的requests庫(kù),專門用于向服務(wù)器發(fā)送HTTP請(qǐng)求,并獲得返回?cái)?shù)據(jù)。使用前,需要先用pip命令安裝。requests庫(kù)中最常用的請(qǐng)求方式是GET,只需要將URL地址作為參數(shù),就可以向URL指定的服務(wù)器發(fā)送請(qǐng)求,服務(wù)器接收到請(qǐng)求后,返回一個(gè)response對(duì)象,里面包括狀態(tài)碼、頭部信息以及HTML源碼文本。知識(shí)準(zhǔn)備8.1.1項(xiàng)目分析新書推薦榜3.解析HTML標(biāo)簽獲取到網(wǎng)頁(yè)源碼后,如何將指定的標(biāo)簽內(nèi)容提取出來(lái)呢?除了字符串搜索以外,Python提供了許多優(yōu)秀的第三方庫(kù),可以快速定位并提取源碼中的HTML標(biāo)簽,其中BeautifulSoup4比較常用。使用之前,需要使用pipinstallbs4安裝。解題思路8.1.2項(xiàng)目規(guī)劃新書推薦榜算法設(shè)計(jì)8.1.2項(xiàng)目規(guī)劃新書推薦榜編程實(shí)現(xiàn)8.1.3項(xiàng)目實(shí)施新書推薦榜編程實(shí)現(xiàn)8.1.3項(xiàng)目實(shí)施新書推薦榜編程實(shí)現(xiàn)8.1.3項(xiàng)目實(shí)施新書推薦榜編程實(shí)現(xiàn)8.1.3項(xiàng)目實(shí)施新書推薦榜robots協(xié)議8.1.3項(xiàng)目提升新書推薦榜

網(wǎng)絡(luò)爬蟲技術(shù)一是一把雙刃劍,方便網(wǎng)絡(luò)數(shù)據(jù)獲取的同時(shí),也給網(wǎng)站服務(wù)器增加額外的負(fù)擔(dān),甚至可能會(huì)成為非法獲取信息的手段,所以有些網(wǎng)站會(huì)禁止爬蟲的訪問(wèn),一般會(huì)用robots協(xié)議來(lái)約定,即用一個(gè)名為robots.txt的文件放在網(wǎng)站根目錄,用于聲明本網(wǎng)站哪些內(nèi)容可以被爬取,哪些內(nèi)容禁止爬取。HTTP頭部信息8.1.3項(xiàng)目提升新書推薦榜某些URL用瀏覽器能夠正常訪問(wèn),但爬蟲程序提交request請(qǐng)求,總是獲取不到數(shù)據(jù)。很可能是網(wǎng)站服務(wù)器拒絕了來(lái)自網(wǎng)絡(luò)爬蟲程序的請(qǐng)求。服務(wù)器通過(guò)headers信息來(lái)判斷請(qǐng)求者是真實(shí)的瀏覽器還是網(wǎng)絡(luò)爬蟲程序,故可以通過(guò)偽裝headers對(duì)服務(wù)器發(fā)起請(qǐng)求,從而獲取正確的反饋?lái)?yè)面。異常處理8.1.4程序優(yōu)化新書推薦榜網(wǎng)絡(luò)爬蟲程序訪問(wèn)目標(biāo)網(wǎng)站時(shí),有時(shí)會(huì)失敗,如果不進(jìn)行異常處理,程序就會(huì)崩潰,如果很好地處理這些異常,便能大大提升爬蟲的工作效率。降低訪問(wèn)頻率8.1.4程序優(yōu)化新書推薦榜于爬蟲程序訪問(wèn)服務(wù)器的速度太快,如果不加限制,可能會(huì)被服務(wù)器上的安全軟件識(shí)別成惡意攻擊,不會(huì)反饋結(jié)果,甚至可能會(huì)被封掉本機(jī)IP地址所有的請(qǐng)求。所以,需要在每次訪問(wèn)后添加一個(gè)間隔時(shí)間。保存到Excel8.1.4程序優(yōu)化新書推薦榜本項(xiàng)目中的爬蟲程序?qū)@取到的數(shù)據(jù)只進(jìn)行了打印輸出。其實(shí),書單更適合的存儲(chǔ)形式是Excel表格。Python寫入Excel表格的方法較多,比較常用的是xlsxwriter庫(kù)。8.2.1項(xiàng)目分析又到畢業(yè)季,李明同學(xué)來(lái)到學(xué)校學(xué)生處,希望了解一下往屆的學(xué)長(zhǎng)們的就業(yè)情況,但他看到《畢業(yè)生就業(yè)情況反饋表》Word文檔,這種以文件方式來(lái)管理的信息,不方便查詢、修改、統(tǒng)計(jì)和分享,應(yīng)用價(jià)值很有限。李明同學(xué)希望借助自己學(xué)習(xí)的Python知識(shí),將這些Word文檔中的重要信息保存到數(shù)據(jù)庫(kù)中,建立一個(gè)畢業(yè)生就業(yè)信息管理系統(tǒng)。就業(yè)信息管理如何讀取Word文檔中表格內(nèi)指定的內(nèi)容,保存到數(shù)據(jù)庫(kù)中?如何搭建軟件界面,實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的增加、刪除、修改、查詢操作?提出問(wèn)題8.2.1項(xiàng)目分析就業(yè)信息管理1.分析文檔結(jié)構(gòu)分析問(wèn)題8.2.1項(xiàng)目分析就業(yè)信息管理2.明確功能需求分析問(wèn)題8.2.1項(xiàng)目分析就業(yè)信息管理3.確定項(xiàng)目目標(biāo)分析問(wèn)題8.2.1項(xiàng)目分析就業(yè)信息管理(1)建立數(shù)據(jù)庫(kù),創(chuàng)建數(shù)據(jù)表,包含學(xué)號(hào)、姓名、專業(yè)、就業(yè)類別以及就業(yè)單位5個(gè)字段;(2)讀取Word文檔中指定的信息,添加到數(shù)據(jù)庫(kù);(3)建立程序窗體,以表格形式顯示數(shù)據(jù)庫(kù)內(nèi)容,建立打開、刪除、查詢、更新等功能的操作界面;(4)對(duì)數(shù)據(jù)庫(kù)內(nèi)容的增加、刪除、修改、查詢等操作。1.讀取Word文檔知識(shí)準(zhǔn)備8.2.1項(xiàng)目分析就業(yè)信息管理Word文件的讀取方法與之類似,需要安裝Word文件操作的第三方庫(kù)docx,在命令行輸入命令:“pipinstallpython-docx”即可完成安裝。2.建立數(shù)據(jù)庫(kù)知識(shí)準(zhǔn)備8.2.1項(xiàng)目分析就業(yè)信息管理本項(xiàng)目需要建立一個(gè)數(shù)據(jù)庫(kù),存儲(chǔ)畢業(yè)生的就業(yè)信息。Python自帶的SQLite就是一款輕量級(jí)的數(shù)據(jù)庫(kù),它以一個(gè).db后綴的文件存在,無(wú)需安裝管理軟件,可以跨平臺(tái)訪問(wèn),非常簡(jiǎn)潔。使用前需要使用“pipinstallsqlite3”安裝。2.建立數(shù)據(jù)庫(kù)知識(shí)準(zhǔn)備8.2.1項(xiàng)目分析就業(yè)信息管理3.設(shè)計(jì)圖形界面知識(shí)準(zhǔn)備8.2.1項(xiàng)目分析就業(yè)信息管理3.設(shè)計(jì)圖形界面知識(shí)準(zhǔn)備8.2.1項(xiàng)目分析就業(yè)信息管理解題思路8.2.2項(xiàng)目規(guī)劃就業(yè)信息管理算法設(shè)計(jì)8.2.2項(xiàng)目規(guī)劃就業(yè)信息管理編程實(shí)現(xiàn)8.2.3項(xiàng)目實(shí)施就業(yè)信息管理1.?dāng)?shù)據(jù)庫(kù)操作函數(shù)8.2.3項(xiàng)目實(shí)施就業(yè)信息管理2.批量提取Word文檔信息編程實(shí)現(xiàn)8.2.3項(xiàng)目實(shí)施就業(yè)信息管理3.顯示數(shù)據(jù)內(nèi)容編程實(shí)現(xiàn)8.2.3項(xiàng)目實(shí)施就業(yè)信息管理4.?dāng)?shù)據(jù)的查詢與刪除操作編程實(shí)現(xiàn)8.2.3項(xiàng)目實(shí)施就業(yè)信息管理5.搭建程序窗體編程實(shí)現(xiàn)8.2.3項(xiàng)目實(shí)施就業(yè)信息管理1.讀入Word文件調(diào)試運(yùn)行8.2.3項(xiàng)目實(shí)施就業(yè)信息管理2.查詢和刪除信息調(diào)試運(yùn)行8.2.4項(xiàng)目提升就業(yè)信息管理程序優(yōu)化8.2.4項(xiàng)目提升就業(yè)信息管理程序優(yōu)化8.3.1項(xiàng)目分析人臉識(shí)別考勤系統(tǒng)提出問(wèn)題隨著人工智能的發(fā)展,人臉識(shí)別得到了廣泛應(yīng)用,購(gòu)物時(shí)可以刷臉支付;銀行辦業(yè)務(wù)時(shí)可以刷臉認(rèn)證;公司上班時(shí)可以刷臉考勤等。

李明同學(xué)希望利用這一技術(shù)建立一個(gè)人臉識(shí)別考勤系統(tǒng),利用攝像頭采集人臉照片,與人臉庫(kù)中的照片進(jìn)行對(duì)比,完成簽到,自動(dòng)保存簽到記錄。如何調(diào)用本地?cái)z像頭,獲取人臉照片?如何建立人臉信息庫(kù),進(jìn)行人臉識(shí)別考勤?并保存考勤記錄?8.3.1項(xiàng)目分析人臉識(shí)別考勤系統(tǒng)提出問(wèn)題1.明確功能需求分析問(wèn)題(1)打開本地?cái)z像頭,按空格鍵截取人臉照片;(2)提取人臉特征信息與已有的特征庫(kù)中照片進(jìn)行對(duì)比;(3)輸出簽到時(shí)間、班級(jí)姓名等信息,同時(shí)記錄到本地文件中;(4)用上傳照片的方式新增學(xué)生人臉信息到人臉庫(kù)。8.3.1項(xiàng)目分析人臉識(shí)別考勤系統(tǒng)2.尋找實(shí)現(xiàn)方法分析問(wèn)題百度大腦的AI開放平臺(tái)提供了諸多人工智能的基礎(chǔ)功能,可以方便地進(jìn)行調(diào)用。比如人臉識(shí)別應(yīng)用,就有人臉檢測(cè)、人臉對(duì)比、人臉?biāo)阉鳌⒒铙w檢測(cè)等許多功能。百度大腦還提供了可視化人臉庫(kù),便于進(jìn)行人臉?biāo)阉骱蛯?duì)比。8.3.1項(xiàng)目分析人臉識(shí)別考勤系統(tǒng)2.尋找實(shí)現(xiàn)方法分析問(wèn)題關(guān)于調(diào)用攝像頭捕捉畫面,可以使用OpenCV庫(kù),它是一款優(yōu)秀的跨平臺(tái)計(jì)算機(jī)視覺(jué)庫(kù),可用于獲取攝像頭實(shí)時(shí)視頻中的某一幀,保存成圖片。另外本項(xiàng)目還將用到requests庫(kù)來(lái)發(fā)送請(qǐng)求,base64庫(kù)來(lái)轉(zhuǎn)換圖片格式、json庫(kù)來(lái)組織參數(shù)、time庫(kù)來(lái)記錄時(shí)間等。8.3.1項(xiàng)目分析人臉識(shí)別考勤系統(tǒng)1.創(chuàng)建人臉識(shí)別應(yīng)用項(xiàng)目準(zhǔn)備8.3.1項(xiàng)目分析人臉識(shí)別考勤系統(tǒng)2.獲取接口調(diào)用憑據(jù)項(xiàng)目準(zhǔn)備8.3.1項(xiàng)目分析人臉識(shí)別考勤系統(tǒng)3.建立人臉庫(kù)項(xiàng)目準(zhǔn)備8.3.1項(xiàng)目分析人臉識(shí)別考勤系統(tǒng)3.建立人臉庫(kù)項(xiàng)目準(zhǔn)備8.3.1項(xiàng)目分析人臉識(shí)別考勤系統(tǒng)解題思路8.3.2項(xiàng)目規(guī)劃人臉識(shí)別考勤系統(tǒng)算法設(shè)計(jì)8.3.2項(xiàng)目規(guī)劃人臉識(shí)別考勤系統(tǒng)編程實(shí)現(xiàn)8.3.3項(xiàng)目實(shí)施人臉識(shí)別考勤系統(tǒng)1.調(diào)用百度API的函數(shù)編程實(shí)現(xiàn)8.3.3項(xiàng)目實(shí)施人臉識(shí)別考勤系統(tǒng)2.主程序調(diào)試運(yùn)行8.3.3項(xiàng)目實(shí)施人臉

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論