Python網(wǎng)絡(luò)爬蟲項(xiàng)目式教程 課件全套 項(xiàng)目1-7 保存服務(wù)器網(wǎng)頁到本地認(rèn)識爬蟲-分布式爬蟲爬取視頻_第1頁
Python網(wǎng)絡(luò)爬蟲項(xiàng)目式教程 課件全套 項(xiàng)目1-7 保存服務(wù)器網(wǎng)頁到本地認(rèn)識爬蟲-分布式爬蟲爬取視頻_第2頁
Python網(wǎng)絡(luò)爬蟲項(xiàng)目式教程 課件全套 項(xiàng)目1-7 保存服務(wù)器網(wǎng)頁到本地認(rèn)識爬蟲-分布式爬蟲爬取視頻_第3頁
Python網(wǎng)絡(luò)爬蟲項(xiàng)目式教程 課件全套 項(xiàng)目1-7 保存服務(wù)器網(wǎng)頁到本地認(rèn)識爬蟲-分布式爬蟲爬取視頻_第4頁
Python網(wǎng)絡(luò)爬蟲項(xiàng)目式教程 課件全套 項(xiàng)目1-7 保存服務(wù)器網(wǎng)頁到本地認(rèn)識爬蟲-分布式爬蟲爬取視頻_第5頁
已閱讀5頁,還剩194頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

191-XXXX學(xué)院教案教案(詳案)學(xué)年第2學(xué)期課程名稱:Python網(wǎng)絡(luò)爬蟲項(xiàng)目式教程課程代碼:適用專業(yè):大數(shù)據(jù)技術(shù)及應(yīng)用教師姓名:所屬系部:職稱:課時:總學(xué)時64(理實(shí)一體64)使用教材:教務(wù)處制

XX教學(xué)單元教案主題項(xiàng)目一保存服務(wù)器網(wǎng)頁到本地認(rèn)識爬蟲序號1課時2教學(xué)手段板書、多媒體教學(xué)方法講授、討論教學(xué)課型£理論£實(shí)訓(xùn)R一體化£(其它)教學(xué)目標(biāo)能力目標(biāo):1、能描述爬蟲的應(yīng)用場景2、能描述爬蟲的工作原理3、能描述實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲的流程知識目標(biāo):1、網(wǎng)絡(luò)爬蟲的工作原理2、網(wǎng)絡(luò)爬蟲抓取網(wǎng)頁的流程3、Python實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲的流程素質(zhì)目標(biāo):1、了解學(xué)習(xí)本門課的重要性;2、了解本門課在整個專業(yè)體系里面的作用和定位;知道本門課的學(xué)習(xí)方式和本學(xué)期對本門課的總體設(shè)計安排以及考試安排;教學(xué)重點(diǎn)1、網(wǎng)絡(luò)爬蟲的工作原理2、網(wǎng)絡(luò)爬蟲的抓取網(wǎng)頁的流程教學(xué)難點(diǎn)掌握Python程序的執(zhí)行原理教學(xué)過程設(shè)計備注任務(wù)1(Python網(wǎng)絡(luò)爬蟲項(xiàng)目式教程說課)(10分鐘)一、課程定位1.課程性質(zhì)《Python網(wǎng)絡(luò)爬蟲項(xiàng)目式教程》是計算機(jī)類專業(yè)必修的一門專業(yè)核心課,本課程以能力與知識相結(jié)合為培養(yǎng)目標(biāo),以社會崗位需求為向?qū)?,切?shí)培養(yǎng)學(xué)生的邏輯與編程思維及使用程序設(shè)計語言解決實(shí)際問題的能力,為走上工作崗位打下堅實(shí)的基礎(chǔ)。人才培養(yǎng)規(guī)格《Python網(wǎng)絡(luò)爬蟲》服務(wù)于高職高專人才培養(yǎng)目標(biāo),堅持理論與實(shí)務(wù)結(jié)合,以爬蟲工程師技能培養(yǎng)為主線。職業(yè)崗位要求利用Python語言提供的強(qiáng)大功能,編寫應(yīng)用于計算機(jī)網(wǎng)絡(luò)、企業(yè)級應(yīng)用軟件具體職業(yè)崗位專業(yè)能力培養(yǎng):(1)具備面向?qū)ο缶幊痰木幊趟枷爰盎舅惴?,能根?jù)問題正確選擇、組合算法。(2)能獨(dú)立編寫代碼,編寫測試數(shù)據(jù),并能獨(dú)立調(diào)試程序,獲得正確結(jié)果。(3)具備進(jìn)行分析和處理Python爬蟲程序運(yùn)行中產(chǎn)生的有關(guān)技術(shù)問題的能力。二、課程目標(biāo)(1)知識目標(biāo):理解和掌握Python語言基本語法和語義,掌握Python網(wǎng)絡(luò)爬蟲開的一般流程、掌握Python網(wǎng)絡(luò)爬蟲開發(fā)的基本步驟。(2)能力目標(biāo):要求能較熟練掌握Python請求網(wǎng)頁的方法,數(shù)據(jù)提取方法、數(shù)據(jù)持久化存儲的方法。(3)素質(zhì)目標(biāo):養(yǎng)成良好的編程習(xí)慣、提高團(tuán)隊精神和協(xié)作精神、艱苦奮斗意識、心理素質(zhì)和克服困難的能力。三、課程設(shè)計思路1.課程內(nèi)容及重難點(diǎn)2教學(xué)方法與手段3.考核方法4.教學(xué)條件四、改革思路第一課時(什么是網(wǎng)絡(luò)爬蟲、網(wǎng)絡(luò)爬蟲的應(yīng)用場景、Robots協(xié)議、防爬蟲應(yīng)對策略)教師通過直接導(dǎo)入的方式導(dǎo)入新課教師首先講解網(wǎng)絡(luò)爬蟲的概念,其次講解網(wǎng)絡(luò)爬蟲歷經(jīng)幾十年的發(fā)展,衍生出的爬蟲類型,了解了什么是網(wǎng)絡(luò)爬蟲,然后講解網(wǎng)絡(luò)爬蟲的應(yīng)用場景,最后講解Robots協(xié)議以及防爬蟲對應(yīng)策略。二、新課講解知識點(diǎn)1-什么是網(wǎng)絡(luò)爬蟲(1)熟悉網(wǎng)絡(luò)爬蟲的概念。(2)熟悉網(wǎng)絡(luò)爬蟲的分類。網(wǎng)絡(luò)爬蟲(WebCrawler)又稱網(wǎng)絡(luò)蜘蛛、網(wǎng)絡(luò)機(jī)器人,它是一種按照一定規(guī)則,自動瀏覽萬維網(wǎng)的程序或腳本。通俗地講,網(wǎng)絡(luò)爬蟲就是一個模擬真人瀏覽萬維網(wǎng)行為的程序,這個程序可以代替真人自動請求萬維網(wǎng),并接收從萬維網(wǎng)返回的數(shù)據(jù)。與真人瀏覽互聯(lián)網(wǎng)相比,網(wǎng)絡(luò)爬蟲能夠獲取的信息量更大,效率也更高。(1)通用網(wǎng)絡(luò)爬蟲(GeneralPurposeWebCrawler)又稱全網(wǎng)爬蟲(ScalableWebCrawler),是指訪問全互聯(lián)網(wǎng)資源的網(wǎng)絡(luò)爬蟲。通用網(wǎng)絡(luò)爬蟲是互聯(lián)網(wǎng)早期出現(xiàn)的傳統(tǒng)網(wǎng)絡(luò)爬蟲,它是捜索引擎(如百度、谷歌、雅虎等)抓取系統(tǒng)的重要組成部分,主要用于將互聯(lián)網(wǎng)中的網(wǎng)頁下載到本地,形成一個互聯(lián)網(wǎng)內(nèi)容的鏡像備份。(2)聚焦網(wǎng)絡(luò)爬蟲(FocusedCrawler)又稱主題網(wǎng)絡(luò)爬蟲(TopicalCrawler),是指選擇性地訪問那些與預(yù)先定義好的主題相關(guān)網(wǎng)頁的網(wǎng)絡(luò)爬蟲,它根據(jù)預(yù)先定義好的目標(biāo),有選擇性地訪問與目標(biāo)主題相關(guān)的網(wǎng)頁,獲取所需要的數(shù)據(jù)。(3)增量式網(wǎng)絡(luò)爬蟲(IncrementalWebCrawler)是指對已下載的網(wǎng)頁采取增量式更新,只爬行新產(chǎn)生或者已經(jīng)發(fā)生變化的網(wǎng)頁的爬蟲。(4)深層網(wǎng)絡(luò)爬蟲(DeepWebCrawler)是指爬行深層網(wǎng)頁的網(wǎng)絡(luò)爬蟲,它要爬行的網(wǎng)頁層次比較深,需要通過一定的附加策略才能夠自動爬行,實(shí)現(xiàn)難度稍微大一些。知識點(diǎn)2-網(wǎng)絡(luò)爬蟲的應(yīng)用場景隨著互聯(lián)網(wǎng)信息的“爆炸”,網(wǎng)絡(luò)爬蟲漸漸為人們所熟知,并被應(yīng)用到社會生活的眾多領(lǐng)域。作為一種自動采集網(wǎng)頁數(shù)據(jù)的技術(shù),很多人其實(shí)并不清楚網(wǎng)絡(luò)爬蟲具體能應(yīng)用到什么場景。事實(shí)上,大多數(shù)依賴數(shù)據(jù)支撐的應(yīng)用場景都離不開網(wǎng)絡(luò)爬蟲,包括搜索引擎、輿情分析與監(jiān)測、聚合平臺、出行類軟件等。知識點(diǎn)3-Robots協(xié)議(1)熟悉什么是robots協(xié)議。Robots協(xié)議又稱爬蟲協(xié)議,它是網(wǎng)站國際互聯(lián)網(wǎng)界通行的道德規(guī)范,其目的是保護(hù)網(wǎng)站數(shù)據(jù)和敏感信息,確保網(wǎng)站用戶的個人信息和隱私不受侵犯。為了讓網(wǎng)絡(luò)爬蟲了解網(wǎng)站的訪問范圍,網(wǎng)站管理員通常會在網(wǎng)站的根目錄下放置一個符合Robots協(xié)議的robots.txt文件,通過這個文件告知網(wǎng)絡(luò)爬蟲在抓取該網(wǎng)站時存在哪些限制,哪些網(wǎng)頁是允許被抓取的,哪些網(wǎng)頁是禁止被抓取的。知識點(diǎn)4-防爬蟲應(yīng)對策略(1)添加User-Agent字段瀏覽器在訪問網(wǎng)站時會攜帶固定的User-Agent(用戶代理,用于描述瀏覽器的類型及版本、操作系統(tǒng)及版本、瀏覽器插件、瀏覽器語言等信息),這么做的目的是向網(wǎng)站表明自己的真實(shí)身份。(2)降低訪問頻率如果同一賬戶在較短的時間內(nèi)多次訪問了網(wǎng)頁,那么網(wǎng)站運(yùn)維人員會推斷此種訪問行為可能是網(wǎng)絡(luò)爬蟲的行為,并將該賬戶加入到黑名單禁止訪問網(wǎng)站。為防止網(wǎng)站運(yùn)維人員從訪問量上認(rèn)出網(wǎng)絡(luò)爬蟲的身份,我們可以降低網(wǎng)絡(luò)爬蟲訪問網(wǎng)站的頻率。(3)設(shè)置代理服務(wù)器網(wǎng)絡(luò)爬蟲在訪問網(wǎng)站時,若反復(fù)使用同一IP地址進(jìn)行訪問,極易被網(wǎng)站認(rèn)出網(wǎng)絡(luò)爬蟲的身份后進(jìn)行屏蔽、阻止、封禁等操作,此時便可以在網(wǎng)絡(luò)爬蟲和Web服務(wù)器之間設(shè)置代理服務(wù)器。(4)識別驗(yàn)證碼有些網(wǎng)站在檢測到某個客戶端的IP地址訪問次數(shù)過于頻繁時,有時會要求該客戶端進(jìn)行登錄驗(yàn)證,并隨機(jī)提供一個驗(yàn)證碼,此時為了應(yīng)對這種突發(fā)情況,網(wǎng)絡(luò)爬蟲除了要輸入正確的賬戶密碼之外,還要像人類一樣通過滑動或點(diǎn)擊行為識別驗(yàn)證碼,如此才能繼續(xù)訪問網(wǎng)站。三、歸納總結(jié)教師回顧本節(jié)課所講的內(nèi)容,并通過測試題的方式引導(dǎo)學(xué)生解答問題并給予指導(dǎo)。四、布置作業(yè)教師通過超星平臺布置本節(jié)課作業(yè)以及下節(jié)課的預(yù)習(xí)作業(yè)。第二課時(網(wǎng)絡(luò)爬蟲的工作原理、網(wǎng)絡(luò)爬蟲抓取網(wǎng)頁的流程、網(wǎng)絡(luò)爬蟲的實(shí)現(xiàn)技術(shù)、Python實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲的流程)一、復(fù)習(xí)鞏固教師通過上節(jié)課作業(yè)的完成情況,對學(xué)生吸收不好的知識點(diǎn)進(jìn)行再次鞏固講解。二、教師通過直接導(dǎo)入的方式導(dǎo)入新課互聯(lián)網(wǎng)中有多種網(wǎng)絡(luò)爬蟲,盡管這些網(wǎng)絡(luò)爬蟲的使用場景不同,但它們的工作原理大同小異。接下來,本節(jié)課將講解網(wǎng)絡(luò)爬蟲的工作原理、網(wǎng)絡(luò)爬蟲的工作流程、網(wǎng)絡(luò)爬蟲的實(shí)現(xiàn)技術(shù)和Python實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲的流程。新課講解知識點(diǎn)1-網(wǎng)絡(luò)爬蟲的工作原理(1)通用網(wǎng)絡(luò)爬蟲的工作原理。(2)聚焦網(wǎng)絡(luò)爬蟲的工作原理。(1)通用網(wǎng)絡(luò)爬蟲的采集目標(biāo)是整個互聯(lián)網(wǎng)上的所有網(wǎng)頁,它會先從一個或多個初始URL開始,獲取初始URL對應(yīng)的網(wǎng)頁數(shù)據(jù),并不斷從該網(wǎng)頁數(shù)據(jù)中抽取新的URL放到隊列中,直至滿足一定的條件后停止,如下圖所示。(2)聚焦網(wǎng)絡(luò)爬蟲會根據(jù)一定的網(wǎng)頁分析算法對網(wǎng)頁進(jìn)行篩選,保留與主題有關(guān)的網(wǎng)頁鏈接,舍棄與主題無關(guān)的網(wǎng)頁鏈接,目的性更強(qiáng),如下圖所示。知識點(diǎn)2-網(wǎng)絡(luò)爬蟲抓取網(wǎng)頁的流程雖然通用網(wǎng)絡(luò)爬蟲和聚焦網(wǎng)絡(luò)爬蟲的工作原理有一些差別,但它們的工作流程大致相同,它們的工作流程如下圖所示。關(guān)于上圖工作流程的詳細(xì)講解如下。(1) 精心選擇一些網(wǎng)頁,將這些網(wǎng)頁的鏈接作為種子URL。(2) 將種子URL放入到待抓取URL隊列中。(3) 從待抓取URL隊列中依次讀取URL,并通過DNS解析URL,把鏈接地址轉(zhuǎn)換為網(wǎng)站服務(wù)器所對應(yīng)的IP地址。(4) 將IP地址和網(wǎng)頁相對路徑名稱交給網(wǎng)頁下載器,網(wǎng)頁下載器負(fù)責(zé)網(wǎng)頁內(nèi)容的下載。(5) 網(wǎng)頁下載器將相應(yīng)網(wǎng)頁的內(nèi)容下載到本地。(6) 將下載到本地的網(wǎng)頁存儲到頁面庫中,等待建立索引等后續(xù)處理;與此同時將下載過網(wǎng)頁的URL放入到已抓取URL隊列中,這個隊列記載了網(wǎng)絡(luò)爬蟲已經(jīng)下載過的網(wǎng)頁URL,以避免網(wǎng)頁的重復(fù)抓取。(7) 對于剛剛下載的網(wǎng)頁,從中抽取出所包含的所有鏈接信息,并在已抓取URL中檢查其是否被抓取過,如果還未被抓取過,則將這個URL放入到待抓取URL隊列中。(8) 下載待抓取URL隊列中的URL對應(yīng)的網(wǎng)頁,如此重復(fù)(3)~(7),直到待抓取URL隊列為空。知識點(diǎn)3-網(wǎng)絡(luò)爬蟲的實(shí)現(xiàn)技術(shù)為滿足用戶快速從網(wǎng)頁上采集數(shù)據(jù)的需求,市面上出現(xiàn)了一些可視化界面的網(wǎng)絡(luò)爬蟲工具,比如八爪魚采集器、火車頭采集器等,這些工具本質(zhì)上就是一個網(wǎng)絡(luò)爬蟲。除了直接使用這些現(xiàn)成的工具之外,我們也可以開發(fā)一個自己的網(wǎng)絡(luò)爬蟲。目前,開發(fā)網(wǎng)絡(luò)爬蟲的語言主要有PHP、Go、C++、Java、Python共5種。知識點(diǎn)4-Python實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲的流程(1)抓取網(wǎng)頁數(shù)據(jù)抓取網(wǎng)頁數(shù)據(jù)是按照設(shè)定的目標(biāo),根據(jù)所有目標(biāo)網(wǎng)頁的URL向目標(biāo)網(wǎng)站發(fā)送請求,并獲得整個網(wǎng)頁的數(shù)據(jù)。抓取網(wǎng)頁數(shù)據(jù)的過程類似于用戶在瀏覽器中鍵入網(wǎng)址,按回車后看到由瀏覽器渲染后的網(wǎng)頁的過程。(2)解析網(wǎng)頁數(shù)據(jù)解析網(wǎng)頁數(shù)據(jù)是采用不同的解析網(wǎng)頁的方式從整個網(wǎng)頁的數(shù)據(jù)中提取出目標(biāo)數(shù)據(jù)。例如,我們想要采集所有蘋果手機(jī)的價格信息,價格便是提取的目標(biāo)數(shù)據(jù)。解析網(wǎng)頁數(shù)據(jù)的過程類似于從瀏覽器顯示頁面中找到目標(biāo)標(biāo)簽的文本,然后將文本復(fù)制下來的過程。(3)存儲網(wǎng)頁數(shù)據(jù)儲網(wǎng)頁數(shù)據(jù)的過程也是比較簡單,就是將上一步驟中提取的目標(biāo)數(shù)據(jù)以文件的形式存放到本地,也可以存儲到數(shù)據(jù)庫,方便后期對數(shù)據(jù)進(jìn)行深入地研究。四、歸納總結(jié)教師回顧本節(jié)課所講的內(nèi)容,并通過測試題的方式引導(dǎo)學(xué)生解答問題并給予指導(dǎo)。五、布置作業(yè)教師通過高校教輔平臺(/)布置本節(jié)課作業(yè)以及下節(jié)課的預(yù)習(xí)作業(yè)。作業(yè)布置見教材第1章配套的習(xí)題教學(xué)反思

XX教學(xué)單元教案主題項(xiàng)目一保存服務(wù)器網(wǎng)頁到本地pygame的簡單使用序號2課時2教學(xué)手段板書、多媒體教學(xué)方法講授、討論教學(xué)課型£理論□實(shí)訓(xùn)■一體化□(其它)教學(xué)目標(biāo)能力目標(biāo):會安裝Python開發(fā)環(huán)境會使用pygame會使用pycharm軟件知識目標(biāo):1、掌握Python環(huán)境的配置和安裝2、掌握pygame庫的使用3、掌握Pygame軟件的使用素質(zhì)目標(biāo):1、學(xué)會自己主動學(xué)習(xí)2、培養(yǎng)學(xué)生良好的自我表現(xiàn)、與人溝通能力教學(xué)重點(diǎn)1、掌握Python開發(fā)環(huán)境的安裝和配置2、掌握pygame庫的使用教學(xué)難點(diǎn)1、掌握pygame庫的使用教學(xué)過程設(shè)計備注一、復(fù)習(xí)鞏固教師通過上節(jié)課作業(yè)的完成情況,對學(xué)生吸收不好的知識點(diǎn)進(jìn)行再次鞏固講解。二、教師通過直接導(dǎo)入的方式導(dǎo)入新課要進(jìn)行爬蟲的開發(fā),必須安裝好Python的開發(fā)環(huán)境,開發(fā)環(huán)境安排好以后,我們就可以小試牛刀了,使用pygame庫,在課堂播放音樂,給同學(xué)們提提精神。新課講解知識點(diǎn)1-Python的安裝Python幾乎可以在任何平臺下運(yùn)行,如我們所熟悉的:Windows、Linux等多種主流操作系統(tǒng)上運(yùn)行。安裝Python的時候,我們可以選擇從源碼安裝(一般先要安裝編譯源碼所需要的各種依賴包,再下載源碼解壓安裝),也可以用已經(jīng)編譯好打包好的安裝包進(jìn)行安裝,這里筆者選擇的是編譯好的安裝包下載安裝。筆者以在Windows7、64位操作系統(tǒng)中安裝python為例,簡要說明一下Python的安裝:Python的安裝包,可以直接從官網(wǎng)下載,Python下載地址:/,單擊單擊點(diǎn)擊Downloads下選擇Widows,再選擇Python的版本下載。這里版本主要分成3個版本:embeddablezipfile-解壓版:解壓后配置環(huán)境變量就可以直接使用;executableinstaller-安裝版:需要安裝并配置環(huán)境變量才能使用;web-basedinstaller-在線安裝版:需要連接網(wǎng)絡(luò)安裝,3個版本如圖1-7所示。x86代表32位,x86-64代表64位,根據(jù)您的計算機(jī)系統(tǒng)是32位系統(tǒng)還是64位系統(tǒng)選擇安裝,關(guān)于操作系統(tǒng)的位數(shù)查看,可以按照如圖1.5的示意進(jìn)行查看。注意:Python版本要根據(jù)自己操作系統(tǒng)是64位,還是32位來選擇。知道了自己操作系統(tǒng)是64位還是32位系統(tǒng)以后,就可以選擇對應(yīng)的版本進(jìn)行下載了,Python也有自己的版本號,其中是分成了32位和64位版本的。建議讀者朋友,選擇3.7版本以上的Python下載并安裝,一路點(diǎn)擊下去就可以完成安裝。接下來,進(jìn)行環(huán)境變量的配置:如果前面的“AddPythontoPATH”沒有進(jìn)行勾選,那么意味著Python安裝以后,可能還不能正常使用,此時需要配置環(huán)境變量。所謂的環(huán)境變量是定義系統(tǒng)運(yùn)行環(huán)境的一些參數(shù)。簡單的說計算機(jī)在某個執(zhí)行程序或命令的時候,是在環(huán)境變量找對應(yīng)的程序或命令的起始位置的。如果不正確設(shè)置環(huán)境變量就不能正確使用相應(yīng)的應(yīng)用程序。環(huán)境變量的路徑為計算機(jī)|屬性|高級系統(tǒng)設(shè)置|高級|環(huán)境變量|系統(tǒng)變量|Path|編輯,設(shè)置環(huán)境變量的詳細(xì)步驟如下:(1)在計算機(jī)上右擊,選擇屬性,如圖1-16所示。圖1-16在計算機(jī)選擇“屬性”(2)在彈出對話框上左鍵單擊“高級系統(tǒng)設(shè)置”,如圖1-17所示。圖1-17選擇高級系統(tǒng)設(shè)置(3)在高級面板中,選擇系統(tǒng)變量中的Path,點(diǎn)編輯,如圖1-18所示。圖1-18選擇Path路徑(3)請注意配置環(huán)境變量,將“;C:\Python37;C:\Python37\Scripts;”(注意,復(fù)制雙引號中間的內(nèi)容,不要復(fù)制雙引號)復(fù)制到環(huán)境變量中的系統(tǒng)變量的Path變量的最后邊位置上去,如圖1-19所示。圖1-19配置環(huán)境變量接下來,測試一下,Python是否安裝成功。按下鍵盤上的win+R鍵,調(diào)出運(yùn)行窗口,在運(yùn)行窗口中輸入cmd回車,在cmd下輸入python-V,可以看到Python的版本號為Python3.7.0,就可以知道Python安裝成功了,如圖1-20所示。注意:cmd下輸入的是python–V,V是大寫的。圖1-20測試Python是否安裝成功知識點(diǎn)2-pygame的簡單使用pygame本身是用來開發(fā)游戲的,這里使用該框架來播放mp3格式的音頻文件。該框架主要使用到了如下方法和模塊。(1)pygame.init()方法該函數(shù)在使用pygame時進(jìn)行初始化,只有引用了該函數(shù)才能使用pygame提供的所用功能。(2)pygame.Rect()方法該函數(shù)可以設(shè)置一張圖片的位置以及大小,該函數(shù)主要包含如下構(gòu)造函數(shù)。1).rect=pygame.Rect(left,top,width,height)2).rect=pygame.Rect((left,top),(width,height))3).rect=pygame.Rect(object)(3)pygame.mixer模塊該模塊主要是用來播放聲音的,主要用到了以下的方法。1)pygame.mixer.init()該方法主要是初始化混音器模塊。2)pygame.mixer.quit()該方法主要是卸載混音器模塊3)pygame.mixer.music.stop()該方法主要是停止播放音頻文件。4)pygame.mixer.music.pause()該方法主要是暫停播放所有音頻文件。5)pygame.mixer.music.play()該方法主要是播放載入的音頻文件。6)pygame.mixer.music.load(file)使用文件名作為參數(shù)載入音頻文件,音頻文件可以是mp3等格式。要使用pygame庫,可以使用如下命令進(jìn)行安裝:pipinstallpygame01importpygame02importtime03if__name__=='__main__':04print("我親愛的祖國我永遠(yuǎn)緊依著你的心窩!")05file_name="whwdzg.mp3"06pygame.mixer.init()#只初始化音頻部分07#載入的音樂不會全部放到內(nèi)容中,而是以流的形式播放的,即在播放的時候才會一點(diǎn)點(diǎn)從文件中讀取。08track=pygame.mixer.music.load(file_name)09#播放載入的音樂。該函數(shù)立即返回,音樂播放在后臺進(jìn)行。10pygame.mixer.music.play()11time.sleep(300)12pygame.mixer.music.stop()01行導(dǎo)入pygame模塊;02行導(dǎo)入time模塊;04行打印輸出提示信息;05行定義字符串file_name;06行初始化音頻部分;08行載入音樂;10行播放音樂;11行表示延時,等待播放加載就緒;12行停止音樂。知識點(diǎn)3-Windows下MongoDB安裝和配置2.Windows下MongoDB安裝和配置使用64位的3.4版本的MongoDB:mongodb-win32-x86_64-2008plus-ssl-v3.4-latest-signed.msi,安裝及具體配置過程如下。(1)打開msi安裝包,勾選同意許可條款,單擊“Next”按鈕,如圖1-21所示。圖1-21接受協(xié)議(2)安裝程序提供兩種安裝模式,完整(Complete)模式會將全部內(nèi)容安裝在C盤路徑且無法更改,若要更改安裝路徑則需要選擇下圖中的定制(Custom)模式,如圖1-22所示。圖1-22安裝模式的選擇(3)在定制模式下可選擇安裝路徑和需要安裝的組件,單擊“Next”按鈕開始安裝過程,如圖1-23所示。圖1-23選擇安裝目錄(4)安裝完成后,需進(jìn)入安裝目錄,建立data和log文件夾分別存放數(shù)據(jù)和log文件,還需創(chuàng)建一個mongo.conf配置文件,如圖1-24所示。圖1-24創(chuàng)建配置文件(5)在logs文件夾內(nèi)創(chuàng)建一個名為mongo.log的日志文件,內(nèi)容留空即可,如圖1-25所示。圖1-25創(chuàng)建日志文件(6)為了能夠正常使用MongoDB數(shù)據(jù)庫,需要配置其環(huán)境變量,在系統(tǒng)變量“Path”中添加MongoDB的路徑,如D:\ProgramFiles\MongoDB\Server\3.4\bin,如圖1-26所示。圖1-26添加環(huán)境變量(7)還需配置MongoDB服務(wù),使用管理員權(quán)限打開cmd啟動控制臺,安裝服務(wù)完畢后可使用命令對服務(wù)進(jìn)行開啟和關(guān)閉,如圖1-27所示。圖1-27CMD下MongoDB服務(wù)的啟動和停止(8)服務(wù)啟動后,在瀏覽器輸入:27017,若出現(xiàn)下圖所示的字樣,則說明啟動成功,如圖1-28所示。圖1-28測試MongoDB服務(wù)是否正常啟動3.Linux下MongoDB安裝和配置在Linux環(huán)境下,選用mongodb-linux-x86_64-rhel70-3.4.11版本的MongoDB數(shù)據(jù)庫,安裝步驟如下。(1)使用“wget”命令從官網(wǎng)獲取MongoDB數(shù)據(jù)庫的tar包,如圖1-29所示。圖1-29下載MongoDB數(shù)據(jù)庫tar包(2)將tar包進(jìn)行解壓縮,并復(fù)制到“/usr/local/”路徑下,如圖1-30所示。圖1-30使用解壓命令解壓(3)切換至“/usr/local/mongodb/bin”路徑下,使用“sudovimmongodb.conf”命令創(chuàng)建MongoDB數(shù)據(jù)庫配置文件,如圖1-31所示。圖1-31創(chuàng)建配置文件(4)切換回“/usr/local/mongodb”路徑下,依次運(yùn)行“sudomkdirdata”、“cddata”、“sudomkdirdb”、“sudomkdirlogs”命令創(chuàng)建文件夾,如圖1-32所示。圖1-32創(chuàng)建相關(guān)文件夾(5)再次切換至“/usr/local/mongodb/bin”路徑下,運(yùn)行“sudo./mongod-fmongodb.conf”命令啟動MongoDB,如圖1-33所示。圖1-33啟動MongoDB(6)打開瀏覽器輸入“:27017”,出現(xiàn)下圖中的信息,說明啟動成功,如圖1-34所示。圖1-34測試MongoDB能否正常使用五、上機(jī)練習(xí)上機(jī)練習(xí)主要針對本章中需要重點(diǎn)掌握的知識點(diǎn),以及在程序中容易出錯的內(nèi)容進(jìn)行練習(xí),通過上機(jī)練習(xí)可以考察同學(xué)對知識點(diǎn)的掌握情況,對代碼的熟練程度。上機(jī)一:(熟悉Python環(huán)境變量的設(shè)置)上機(jī)二:(使用pygame播放音樂)上機(jī)三:(MongoDB安裝和配置)六、歸納總結(jié)教師回顧本節(jié)課所講的內(nèi)容,并通過實(shí)現(xiàn)Pygame實(shí)現(xiàn)音樂播放的方式引導(dǎo)學(xué)生解答問題并給予指導(dǎo)。七、布置作業(yè)教師通過高校教輔平臺(/)布置本節(jié)課作業(yè)以及下節(jié)課的預(yù)習(xí)作業(yè)。作業(yè)布置教材項(xiàng)目一配套的習(xí)題教學(xué)反思通過網(wǎng)絡(luò)查閱相關(guān)資料,培養(yǎng)學(xué)生查閱相關(guān)知識的能力。

XX教學(xué)單元教案主題項(xiàng)目一保存服務(wù)器網(wǎng)頁到本地urllib庫的使用序號3課時2教學(xué)手段板書、多媒體教學(xué)方法講授、討論教學(xué)課型£理論□實(shí)訓(xùn)■一體化□(其它)教學(xué)目標(biāo)能力目標(biāo):1、會使用urllib庫請求網(wǎng)頁2、會安裝使用Mysql數(shù)據(jù)庫知識目標(biāo):1、掌握urllib庫的使用2、掌握MySQL數(shù)據(jù)庫的安裝和使用素質(zhì)目標(biāo):1、學(xué)會自己主動學(xué)習(xí)2、培養(yǎng)學(xué)生良好的自我表現(xiàn)、與人溝通能力教學(xué)重點(diǎn)1、掌握urllib庫的使用教學(xué)難點(diǎn)1、掌握urllib庫的使用教學(xué)過程設(shè)計備注一、復(fù)習(xí)鞏固教師通過上節(jié)課作業(yè)的完成情況,對學(xué)生吸收不好的知識點(diǎn)進(jìn)行再次鞏固講解。二、教師通過直接導(dǎo)入的方式導(dǎo)入新課大家在熟悉了Python開發(fā)環(huán)境之后,我們來學(xué)習(xí)下如何將遠(yuǎn)程服務(wù)器的網(wǎng)頁下載到本地,這個,我們也就可以認(rèn)為是爬蟲的功能了,今天我們來學(xué)習(xí)一個叫做urllib的網(wǎng)頁請求庫哦。三、新課講解知識點(diǎn)1-使用urllib庫請求第一個網(wǎng)頁urllib是一個http請求的Python自帶的標(biāo)準(zhǔn)庫,無需安裝,直接可以用。并且提供了如下功能:網(wǎng)頁請求、響應(yīng)獲取、代理和cookie設(shè)置、異常處理、URL解析,可以說是一個比較強(qiáng)大的模塊。這里只介紹請求模塊-urllib.request的簡單使用,更詳細(xì)的使用請參閱項(xiàng)目三。urllib.request的GET請求是如下方式:urllib.request.urlopen(url,data,timeout)url:請求地址data:請求數(shù)據(jù)timeout:請求超時時間data和timeout為可選參數(shù),可以為空,也就是說可以不寫。給一個請求網(wǎng)頁的實(shí)際例子。importurllib.requestresponse=urllib.request.urlopen('/u_13389043/3153863')print("此時的數(shù)據(jù)類型為:"+str(type(response)))response=response.read().decode('utf-8')print("編碼以后的數(shù)據(jù)類型為:"+str(type(response)))運(yùn)行程序,結(jié)果如圖1-36所示。圖1-36使用urllib請求網(wǎng)頁的結(jié)果01行導(dǎo)入urllib.request模塊;02行表示向指定網(wǎng)頁發(fā)起請求;03行打印此時的數(shù)據(jù)類型;04行將收到的響應(yīng)數(shù)據(jù)轉(zhuǎn)成strs數(shù)據(jù)類型;05行表示打印輸出此時的數(shù)據(jù)類型。此時我們可以使用下面兩行代碼就可以將網(wǎng)頁的響應(yīng)內(nèi)容寫入本地文件中:f=open("./book.txt","w",encoding="utf-8")f.write(response)運(yùn)行程序,結(jié)果如圖1-37所示:圖1-37將網(wǎng)頁響應(yīng)內(nèi)容寫入到本地文件中知識點(diǎn)2-安裝和配置MySQL數(shù)據(jù)庫網(wǎng)絡(luò)爬蟲采集到數(shù)據(jù)以后,一般是放到數(shù)據(jù)庫進(jìn)行保存。數(shù)據(jù)庫的選擇一般有SQLite、MySQL、以及MongoDB等數(shù)據(jù)庫。這里首先介紹MySQL數(shù)據(jù)庫的安裝。具體步驟略,見課堂演示。知識點(diǎn)3-將指定網(wǎng)頁保存到本地對目標(biāo)網(wǎng)頁url=“/2019/09/04/ARTI9r6wRsrNhbZv4DwlWC5T190904.shtml”使用urllib庫發(fā)起請求,將網(wǎng)頁的響應(yīng)數(shù)據(jù)保存到本地,然后實(shí)現(xiàn)本地可以瀏覽訪問。這里可以將該網(wǎng)頁的css文件也發(fā)起一次請求,可以將本地文件也保存到本地。這樣,這里一共需要兩次發(fā)起網(wǎng)頁請求,兩次保存網(wǎng)頁的操作,這里給出實(shí)例代碼。01importurllib.request02list1=['/2019/09/04/ARTI9r6wRsrNhbZv4DwlWC5T190904.shtml','/photoAlbum/templet/common/DEPA1452765360136771/style_arti.css']03defsave_data():04foriinrange(0,2):05response=urllib.request.urlopen(list1[i])06response=response.read().decode('utf-8')07ifi==0:08f=open("./gzzq.html","w",encoding="utf-8")#保存網(wǎng)頁09f.write(response)10else:11f=open("./index.css","w",encoding="utf-8")#保存CSS12f.write(response)13save_data()雖然將網(wǎng)頁css保存到了本地,打開網(wǎng)頁是可以正常瀏覽的,應(yīng)為原始網(wǎng)頁只有一個css文件,且該文件使用的是絕對路徑的網(wǎng)址,如圖1-58所示。圖1-58下載的網(wǎng)頁的CSS路徑如果要使用本地網(wǎng)址,可以按照如下圖1-59修改:圖1-59使用本地CSS程序的運(yùn)行結(jié)果如圖1-60所示:圖1-60本地運(yùn)行爬去到的網(wǎng)頁知識點(diǎn)4-將請求網(wǎng)頁的指定的響應(yīng)內(nèi)容保存到數(shù)據(jù)庫使用urllib庫向指定網(wǎng)址“/get”發(fā)起請求,將返回的響應(yīng)頭保存到數(shù)據(jù)庫,使用下面代碼創(chuàng)建數(shù)據(jù)庫表。01--02--數(shù)據(jù)庫:`httpbin`03--04--05--06--表的結(jié)構(gòu)`httpbindata`07--08CREATETABLEIFNOTEXISTS`httpbindata`(09`id`int(20)NOTNULLAUTO_INCREMENT,10`data`textNOTNULL,11PRIMARYKEY(`id`)12)ENGINE=MyISAMDEFAULTCHARSET=utf8AUTO_INCREMENT=2;13--14--轉(zhuǎn)存表中的數(shù)據(jù)`httpbindata`15--這里給出Python的代碼:01importpymysql02importurllib.request03url='/get'04response=urllib.request.urlopen(url)05response=response.read().decode('utf-8')06conn=pymysql.Connect(host='',port=3306,user='root',password='root',db='httpbin')07cursor=conn.cursor()#獲取游標(biāo)08sql="insertintohttpbindata(data)values(%s);"09print(response)10try:11cursor.execute(sql,(response))12mit()13print("數(shù)據(jù)插入成功")14exceptExceptionasresult:15print("數(shù)據(jù)插入失?。?+str(result))四、上機(jī)練習(xí)上機(jī)練習(xí)主要針對本章中需要重點(diǎn)掌握的知識點(diǎn),以及在程序中容易出錯的內(nèi)容進(jìn)行練習(xí),通過上機(jī)練習(xí)可以考察同學(xué)對知識點(diǎn)的掌握情況,對代碼的熟練程度。將課堂演示代碼進(jìn)行上機(jī)上機(jī)一:(使用urllib庫請求第一個網(wǎng)頁)上機(jī)二:(將請求網(wǎng)頁的指定的響應(yīng)內(nèi)容保存到數(shù)據(jù)庫)五、歸納總結(jié)教師回顧本節(jié)課所講的內(nèi)容,并通過實(shí)現(xiàn)Pygame實(shí)現(xiàn)音樂播放的方式引導(dǎo)學(xué)生解答問題并給予指導(dǎo)。六、布置作業(yè)教師通過高校教輔平臺(/)布置本節(jié)課作業(yè)以及下節(jié)課的預(yù)習(xí)作業(yè)。作業(yè)布置教材項(xiàng)目一配套的判斷題和簡答題教學(xué)反思通過網(wǎng)絡(luò)查閱相關(guān)資料,培養(yǎng)學(xué)生查閱相關(guān)知識的能力。XX教學(xué)單元教案主題項(xiàng)目二使用正則提取網(wǎng)頁中內(nèi)容網(wǎng)頁的基本知識序號4課時2教學(xué)手段板書、多媒體教學(xué)方法講授、討論教學(xué)課型£理論□實(shí)訓(xùn)■一體化□(其它)教學(xué)目標(biāo)能力目標(biāo):1、會書寫靜態(tài)網(wǎng)頁2、會看懂CSS代碼3、會看懂簡單的JavaScript代碼知識目標(biāo):1、掌握html的基本結(jié)構(gòu)2、掌握CSS的基本用法3、掌握J(rèn)avaScript最簡單的使用素質(zhì)目標(biāo):1、學(xué)會自己主動學(xué)習(xí)2、培養(yǎng)學(xué)生良好的自我表現(xiàn)、與人溝通能力教學(xué)重點(diǎn)1、掌握html的基本結(jié)構(gòu)2、掌握CSS的基本用法教學(xué)難點(diǎn)1、掌握html的基本結(jié)構(gòu)2、掌握CSS的基本用法教學(xué)過程設(shè)計備注一、復(fù)習(xí)鞏固教師通過上節(jié)課作業(yè)的完成情況,對學(xué)生吸收不好的知識點(diǎn)進(jìn)行再次鞏固講解。二、教師通過直接導(dǎo)入的方式導(dǎo)入新課我們初步接觸了爬蟲的基本知識,在深入學(xué)習(xí)爬蟲之前,有些同學(xué)對網(wǎng)頁的基本知識還不太牢靠,我們對HTML,CSS和JavaScipt的基本知識做一些簡單的回顧。四、新課講解知識點(diǎn)1-HTML基礎(chǔ)知識HTML(HyperTextMarkupLanguage)稱為超文本標(biāo)記語言,是一種描述文檔結(jié)構(gòu)的標(biāo)記語言,它是一種應(yīng)用非常廣泛的網(wǎng)頁格式,也是最早被用來顯示網(wǎng)頁的語言之一。注意:HTML不是編程語言,它只是一門網(wǎng)頁標(biāo)記語言。Web瀏覽器能讀懂HTML文件,并以網(wǎng)頁顯示顯示出來。(1)標(biāo)記的格式HTML中的標(biāo)記的主要作用是用來控制網(wǎng)頁的顯示方式,標(biāo)記一般有<…>和</…>組成,<…>一般是標(biāo)記的開頭,中間的省略號表示其他字符串,</…>表示標(biāo)記的結(jié)束。標(biāo)記分為雙標(biāo)記和單標(biāo)記。雙標(biāo)記要求<…>和</…>成對出現(xiàn),典型的標(biāo)記如下:<html>…</html><html>表示一個網(wǎng)頁的開始,</html>表示網(wǎng)頁的結(jié)束,中間的省略號表示網(wǎng)頁的具體內(nèi)容,包含若干除<html>…</html>之外的標(biāo)記和若干文字、圖片、視頻等內(nèi)容。<head>…</head><head>表示一個網(wǎng)頁的頭部,</head>表示網(wǎng)頁頭部結(jié)束,中間的省略號表示一個網(wǎng)頁的頭部的內(nèi)容。<title>…</title><title>表示一個網(wǎng)頁的標(biāo)題的開始,</title>表示一個網(wǎng)頁的標(biāo)題的結(jié)束。中間的省略號表示這個網(wǎng)頁標(biāo)題的實(shí)際內(nèi)容,該內(nèi)容要求是文字內(nèi)容。<body>…</body><body>表示一個網(wǎng)頁主體的開始,</body>表示一個網(wǎng)頁主體的結(jié)束,中間的省略號表示這個網(wǎng)頁主體的實(shí)際內(nèi)容,這個內(nèi)容可以包含若干標(biāo)記和文字、圖片、視頻等內(nèi)容。單標(biāo)記一般<…>表示,典型的單標(biāo)記如下:<br>該標(biāo)簽表示換行。<hr>該標(biāo)簽表示水平線。<img>該標(biāo)簽表示插入圖片。<input>該標(biāo)簽表示文本輸入框。<param>該標(biāo)簽表示對象,用來定義播放參數(shù)。<meta>該標(biāo)簽表示元信息。<link>該標(biāo)簽定義文檔與外部資源的關(guān)系。(2)標(biāo)記的使用可以按照以下三種方式使用標(biāo)記。1)<標(biāo)記名>文本或超文本</標(biāo)記名>舉例如下:<title>百度首頁</title>注意:超文本是用超鏈接的方法,將各種不同的位置的文字信息組織在一起,形成一個網(wǎng)狀文本。這里超練級是指鏈接的載體和鏈接的目標(biāo)地址兩個部分的內(nèi)容。鏈接的載體指的是顯示鏈接的部分,即包含超鏈接的文字或圖像。鏈接的目標(biāo)是指單擊超鏈接后所顯示的內(nèi)容。例如<ahref=“/”>百度</a>就構(gòu)成了一個超鏈接。2)<標(biāo)記名屬性名1=“屬性值1”屬性名2=“屬性值2”>文本或超文本</標(biāo)記名>舉例如下:<fontsize=”12”color="blue">這是一些文本!</font><ahref=""target="_blank">百度</a>這里,a就是標(biāo)記名,表示超級鏈接,href表示超級鏈接,百度就是文本。target="_blank"表示瀏覽器新開一個窗口,打開href指示的網(wǎng)頁。3)<標(biāo)記名>舉例如下:<hr>該標(biāo)簽表示在HTML頁面中創(chuàng)建一條水平線。注意:HTML標(biāo)記及屬性中字母是不區(qū)分大小寫的,標(biāo)記名與左尖括號之間是不能留空白的,標(biāo)記中用到雙引號的地方都是英文中的引號。(3)HTML的文檔結(jié)構(gòu)HTML文檔結(jié)構(gòu)一般包含了一個網(wǎng)頁的開始部分、網(wǎng)頁的頭部部分、網(wǎng)頁的主體部分以及網(wǎng)頁的結(jié)束部分。下面給出了一個基本的網(wǎng)頁,如圖2-2所示。圖2-2HTML基本結(jié)構(gòu)在該圖上對應(yīng)的代碼是一個什么意思呢?<!doctypehtml>是html5標(biāo)準(zhǔn)網(wǎng)頁聲明,原先的是一串很長的字符串,現(xiàn)在是這個簡潔形式,支持html5標(biāo)準(zhǔn)的主流瀏覽器都認(rèn)識這個聲明。HTML文件的頭部主要有以下內(nèi)容:<head>、</head>之間定義,內(nèi)容包括了標(biāo)題名和作者信息、網(wǎng)站的關(guān)鍵字、網(wǎng)站的描述等內(nèi)容。例如:<metaname="keywords"content="工業(yè)物聯(lián)網(wǎng)云平臺,網(wǎng)關(guān),物聯(lián)網(wǎng)智能網(wǎng)關(guān),無人值守設(shè)備,能源物聯(lián)網(wǎng),物業(yè)物聯(lián)網(wǎng)"/>頭部區(qū)域還可以包含<title></title>,表示網(wǎng)頁的標(biāo)題。網(wǎng)頁的主體部分位于頭部之后,在<body>和</body>之間定義,主要定義了網(wǎng)頁上要顯示的主要內(nèi)容和顯示格式。主體部分可以包含若干其他標(biāo)記和文字、圖片以及其他富媒體內(nèi)容。注意:富媒體是指包含流媒體、聲音、Flash、以及Java、Javascript、DHTML等程序設(shè)計語言的形式之一或者幾種的組合。HTML中還包含了一類信息,就是注釋,注釋也在爬蟲開發(fā)過程中,經(jīng)常遇到,所以,有必要介紹以下HTML中的注釋。注釋的格式如下:<!--注釋文字-->注釋以“<!--”開始,以“-->”結(jié)束,注釋的內(nèi)容會被瀏覽器忽略。利用注釋可以為HTML文檔不同部分加上說明,方便以后的維護(hù)。知識點(diǎn)2-CSS基礎(chǔ)知識CSS指層疊樣式表(CascadingStyleSheets),同樣CCS也不是編程語言,CSS用來告訴瀏覽器如何指定樣式、布局等。(1)CSS樣式表的分類在HTML中使用CSS樣式,主要有三種做法:1)行內(nèi)式設(shè)置HTML標(biāo)簽的時候,設(shè)置該標(biāo)簽的style屬性,style屬性就是包含了樣式。其一般格式為:<標(biāo)簽名style=”屬性1:值1;…屬性n:值n;”>內(nèi)容</標(biāo)簽名>舉例如下:<pstyle=”font-size:16px;color:red”>這是一段文字</p>如果我們把它放到一個網(wǎng)頁中,會是什么樣的一個效果呢?01<!DOCTYPEhtml>02<htmllang="en">03<head>04<metacharset="UTF-8">05<title>我的首頁</title>06</head><body>07<pstyle="font-size:16px;color:red">這是一段文字</p>08</body>09</html>01行是html5標(biāo)準(zhǔn)網(wǎng)頁聲明;02行指定向搜索引擎表示該頁面是HTML語言,并且語言為英文網(wǎng)站;03行表示網(wǎng)頁的頭部開始;04行設(shè)定網(wǎng)頁的編碼;05行設(shè)定網(wǎng)頁的標(biāo)題;06行表示網(wǎng)頁頭部結(jié)束,網(wǎng)頁的主體部分開始;07行定義了一個段落,其文字內(nèi)容是“這是一段文字”,該段落文字字體為16px,文字顏色為紅色。運(yùn)行效果,如圖2-3所示。圖2-3行內(nèi)式樣式表作用效果行內(nèi)式,有的地方也叫內(nèi)斂樣式。這種方式的控制范圍有限,只能控制一個標(biāo)簽,比如,上面例子中的style只能控制p標(biāo)簽。這種樣式的缺點(diǎn)式是樣式(CSS)和結(jié)構(gòu)(HTML)沒有分離,優(yōu)點(diǎn)是權(quán)重高,比如,我們還通過類選擇器給p標(biāo)簽做了如下定義:01<styletype="text/CSS">02p{03font-size:20px;04color:blue;05}06</style>01行表示樣式表開始;02行選擇p標(biāo)簽,設(shè)定p標(biāo)簽內(nèi)的字體大小為20px,文字顏色為藍(lán)色。那么此時,這一段文字到底字體是多大,文字顯示顏色呢?顯然,這里行內(nèi)式給文字字體的大小和文字的顏色做了定義,那么,此時,字體大小和顏色就會按照行內(nèi)是定義的樣式進(jìn)行顯示的。2)內(nèi)部樣式表什么是內(nèi)部樣式表呢?內(nèi)標(biāo)樣式表是在HTML中的head標(biāo)簽中定義style標(biāo)簽,在其中書寫樣式。內(nèi)部樣式表意味著CSS樣式存在HTML的內(nèi)部,作用范圍是只對所在的網(wǎng)頁有效。01<!DOCTYPEhtml>02<htmllang="en">03<head>04<metacharset="UTF-8">05<title>我的首頁</title>06<styletype="text/css">07p{08font-size:20px;09color:blue;10}11</style>12</head>13<body>14<p>這是一段文字</p>15</body>16</html>01行是html5標(biāo)準(zhǔn)網(wǎng)頁聲明;02行指定向搜索引擎表示該頁面是HTML語言,并且語言為英文網(wǎng)站;03行表示網(wǎng)頁的頭部;04行表示設(shè)定網(wǎng)頁的編碼;05行設(shè)定網(wǎng)頁的標(biāo)題;06~11行設(shè)定樣式表,該樣式表中,設(shè)定了p標(biāo)簽中文字大小是20px,字體顏色為藍(lán)色;12行表示網(wǎng)頁頭部結(jié)束標(biāo)簽;13~15行表示定義網(wǎng)頁的主體部分,在網(wǎng)頁的主體部分,放置了一個短路標(biāo)簽p,該標(biāo)簽中的文字內(nèi)容為”這是一段文字”;15行表示網(wǎng)頁主體部分結(jié)束標(biāo)記;16行表示整個網(wǎng)頁結(jié)束。知識點(diǎn)2-JavaScript的簡單使用1.JavaScript的引入JavaScript語言的引入主要有網(wǎng)頁中直接插入和外部引入兩種方式。(1)網(wǎng)頁中直接插入01<!DOCTYPEhtml>02<htmllang="en">03<head>04<metacharset="UTF-8">05<script>06varnum=0;07</script>08<styletype="text/css">09html,body{10width:100%;11height:200px;12margin:0;13padding:0;14}15.box1{16width:300px;17height:100px;/*水平居中*/18margin:0auto;19position:relative;/*脫離文檔流*/20top:50%;/*偏移值,實(shí)現(xiàn)垂直居中*/21}22.btn1{23margin-top:40px;24margin-left:70px;25}2627</style>28<title>JavaScrip的引入</title>29</head>30<body>31<divclass="box1">32<inputtype="button"onclick="fun(this.id)"id="a"class="btn1"value="統(tǒng)計點(diǎn)擊次數(shù),請點(diǎn)我">33<script>34functionfun(id){35vars=document.getElementById(id).value;36num=num+1;37alert(s+"我被點(diǎn)擊了"+num+"次");38}39</script>40</div>41</body>42</html>運(yùn)行程序,結(jié)果如圖2-10所示。圖2-10網(wǎng)頁中直接插入JavaScript代碼(2)網(wǎng)頁中從外部引入JavaScript代碼引用外部JavaScript代碼,可以是JavaScript代碼和HTML文件相分離、一個JavaScript文件可被多個HTML文件使用,同時使得JavaScript代碼的維護(hù)也更加方便。外部引用JavaScript文件,是使用script的src屬性,設(shè)置JavaScript文件的URL就可以了。<scriptsrc=“xxx.js”></script>把上個例子中的JavaScript代碼抽成一個JavaScript文件,名字為demo.js,具體代碼如下:01varnum=0;02functionfun(id){03vars=document.getElementById(id).value;04num=num+1;05alert(s+"我被點(diǎn)擊了"+num+"次");06}01行定義全局變量num,并賦初始值0;02行定義函數(shù),名為fun,并接收id;03行表示查找id確定的對象,并獲取該對象的值賦值給s;04行對num變量實(shí)現(xiàn)加1操作;05行向用戶彈出點(diǎn)擊了多少次。01<!DOCTYPEhtml>02<htmllang="en">03<head>04<metacharset="UTF-8">05<scriptsrc="demo.js"></script>06<styletype="text/css">07html,body{08width:100%;09height:100%;10margin:0;11padding:0;12}13body{14display:flex;15align-items:center;/*定義body的元素垂直居中*/16justify-content:center;/*定義body的里的元素水平居中*/17}18.box1{19width:300px;20height:100px;21margin:0auto;22border:solid1pxrebeccapurple;23}24.btn1{25margin-top:40px;26margin-left:70px;27}28</style>29<title>JavaScrip的外部引入</title>30</head>31<body>32<divclass="box1">33<inputtype="button"onclick="fun(this.id)"id="a"class="btn1"value="統(tǒng)計點(diǎn)擊次數(shù),請點(diǎn)我">34</div>35</body>36</html>05行引入外部的js文件,要求該文件和HTML文件在同一個目錄下;07行定義html、body的寬度和高度都為100%,清除內(nèi)外邊距;13~17行定義body相關(guān)屬性,使用彈性布局(flex),15行設(shè)置body中的元素垂直居中,16行定義body的元素水平居中。運(yùn)行結(jié)果同上一個例子,這里不再給出運(yùn)行結(jié)果。2.JavaScript的基本語法JavaScipt包含了標(biāo)識符、變量、數(shù)據(jù)類型、運(yùn)算符號、控制語句、注釋、類型轉(zhuǎn)換等基本概念,這里分別做一些介紹。首先,JavaScipt代碼是嚴(yán)格區(qū)分大小寫的,每條語句結(jié)束都必須加上分號,語句塊可以加上{}號。(1)標(biāo)識符標(biāo)識符是指JavaScript中定義的符號,例如,變量名、函數(shù)名、對象名等等。標(biāo)識符可以由任意順序的大小寫字母、數(shù)字、下劃線(_)和美元符號($)符號組成,標(biāo)識符不能以數(shù)字開頭,不能使用系統(tǒng)的保留字。(2)變量變量一種引用內(nèi)存位置的容器,用于保存再執(zhí)行腳本時可以更改的值,變量的命名請遵循標(biāo)識符的命名。例如,定義如下變量:vara=2,varb=4;(3)數(shù)據(jù)類型在JavaScript中主要有數(shù)字類型(Number)、布爾型(Boolean)、字符串型(String)四、上機(jī)練習(xí)使用前面介紹的知識,實(shí)現(xiàn)網(wǎng)頁展示偉大抗疫精神,實(shí)現(xiàn)效果如下:上機(jī)一:(網(wǎng)頁展示偉大抗疫精神)五、歸納總結(jié)教師回顧本節(jié)課所講的內(nèi)容,歸納總結(jié)CSS和JavaScript的核心知識點(diǎn)。六、布置作業(yè)教師通過高校教輔平臺(/)布置本節(jié)課作業(yè)以及下節(jié)課的預(yù)習(xí)作業(yè)。作業(yè)布置教材項(xiàng)目二配套的習(xí)題教學(xué)反思通過網(wǎng)絡(luò)查閱相關(guān)資料,培養(yǎng)學(xué)生查閱相關(guān)知識的能力。

XX教學(xué)單元教案主題項(xiàng)目二使用正則提取網(wǎng)頁中內(nèi)容正則的使用序號5課時2教學(xué)手段板書、多媒體教學(xué)方法講授、討論教學(xué)課型£理論□實(shí)訓(xùn)■一體化□(其它)教學(xué)目標(biāo)能力目標(biāo):1、會讀正則表達(dá)式2、會使用正則表達(dá)式提取想要的內(nèi)容知識目標(biāo):1、掌握正則表達(dá)式的基本語法2、掌握常用的正則函數(shù)素質(zhì)目標(biāo):1、學(xué)會自己主動學(xué)習(xí)2、培養(yǎng)學(xué)生良好的自我表現(xiàn)、與人溝通能力教學(xué)重點(diǎn)1、掌握正則表達(dá)式的基本語法2、掌握常用的正則函數(shù)教學(xué)難點(diǎn)1、掌握正則表達(dá)式的基本語法2、掌握常用的正則函數(shù)教學(xué)過程設(shè)計備注一、復(fù)習(xí)鞏固教師通過上節(jié)課作業(yè)的完成情況,對學(xué)生吸收不好的知識點(diǎn)進(jìn)行再次鞏固講解。二、教師通過直接導(dǎo)入的方式導(dǎo)入新課前面的知識中,我們已經(jīng)掌握了使用urllib庫來向服務(wù)器上的網(wǎng)頁發(fā)起請求,并能將整個網(wǎng)頁保存到本地,那么,如何從網(wǎng)頁中提取到我們想要的內(nèi)容,學(xué)過網(wǎng)頁設(shè)計的同學(xué)應(yīng)該知道,我們可以正則表達(dá)式來獲取我們想要的內(nèi)容。三、新課講解知識點(diǎn)1-正則表達(dá)式的基本語法正則表達(dá)式描述在搜索文本時要匹配的一個或多個字符串。正則表達(dá)式中包括了普通字符和元字符。元字符也叫特殊字符,每個元字符在正則表達(dá)式中表示的行為是不一樣的,具體見表2.3所示。表2.3元字符表元字符行為實(shí)例*零次或多次匹配前面的字符或子表達(dá)式。ai*與“a”和“aii”匹配。+一次或多次匹配前面的字符或子表達(dá)式。ai+

與“ai”和“aii”匹配,但與“a”不匹配。?零次或一次匹配前面的字符或子表達(dá)式。當(dāng)?

緊隨任何其他限定符(*、+、?、{n}、{n,}或{n,m})之后時,匹配模式是非貪婪的。

非貪婪模式匹配搜索到的、盡可能少的字符串,

而默認(rèn)的貪婪模式匹配搜索到的、盡可能多的字符串。zo?

與“z”和“zo”匹配,但與“zoo”不匹配。o+?

只與“oooo”中的單個“o”匹配,而

o+

與所有“o”匹配。do(es)?

與“do”或“does”中的“do”匹配^匹配搜索字符串開始的位置。

如果標(biāo)志中包括

m(多行搜索)字符,^還將匹配\n或\r后面的位置。如果將^用作括號表達(dá)式中的第一個字符,則會對字符集求反。^\d{3}

與搜索字符串開始處的3個數(shù)字匹配。[^abc]

與除a、b和c以外的任何字符匹配。$匹配搜索字符串結(jié)尾的位置。

如果標(biāo)志中包括

m(多行搜索)字符,^還將匹配\n或\r前面的位置。\d{3}$

與搜索字符串結(jié)尾處的3個數(shù)字匹配。.匹配除換行符\n之外的任何單個字符。

若要匹配包括\n在內(nèi)的任意字符,請使用諸如

[\s\S]

之類的模式。a.c

與“abc”、“a1c”和“a-c”匹配。[]標(biāo)記括號表達(dá)式的開始和結(jié)尾。[1-4]

與“1”、“2”、“3”或“4”匹配。

[^aAeEiIoOuU]與任何非元音字符匹配。{}標(biāo)記限定符表達(dá)式的開始和結(jié)尾。a{2,3}

與“aa”和“aaa”匹配。()標(biāo)記子表達(dá)式的開始和結(jié)尾。

可以保存子表達(dá)式以備將來之用。A(\d)

與“A0”至“A9”匹配。

保存該數(shù)字以備將來之用。|指示在兩個或多個項(xiàng)之間進(jìn)行選擇。z|food

與“z”或“food”匹配。

(z|f)ood與“zood”或“food”匹配。/表示JScript中的文本正則表達(dá)式模式的開始或結(jié)尾。

在第二個“/”后添加單字符標(biāo)志可以指定搜索行為。/abc/gi

是與“abc”匹配的JScript文本正則表達(dá)式。g(全局)標(biāo)志指定查找模式的所有匹配項(xiàng),i(忽略大小寫)標(biāo)志使搜索不區(qū)分大小寫。\將下一字符標(biāo)記為特殊字符、文本、反向引用或八進(jìn)制轉(zhuǎn)義符。\n

與換行符匹配。

\(

與“(”匹配。

\\

與“\”匹配。\b與一個字邊界匹配;即字與空格間的位置。er\b

與“never”中的“er”匹配,但與“verb”中的“er”不匹配。\B非邊界字匹配。er\B

與“verb”中的“er”匹配,但與“never”中的“er”不匹配。\d數(shù)字字符匹配。等效于

[0-9]。在搜索字符串“12345”中,\d{2}與“12”和“34”匹配。

\d與“1”、“2”、“3”、“4”和“5”匹配。\D非數(shù)字字符匹配。等效于

[^0-9]。\D+

與“abc123def”中的“abc”和“def”匹配。\w與以下任意字符匹配:A-Z、a-z、0-9和下劃線。等效于

[A-Za-z0-9_]。在搜索字符串“Thequickbrownfox…”中,\w+與“The”、“quick”、“brown”和“fox”匹配。\W與除A-Z、a-z、0-9和下劃線以外的任意字符匹配。等效于

[^A-Za-z0-9_]。在搜索字符串“Thequickbrownfox…”中,\W+

與“…”和所有空格匹配。[xyz]字符集。

與任何一個指定字符匹配。[abc]

與“plain”中的“a”匹配。[^xyz]反向字符集。

與未指定的任何字符匹配。[^abc]

與“plain”中的“p”、“l(fā)”、“i”和“n”匹配。[a-z]字符范圍。

匹配指定范圍內(nèi)的任何字符。[a-z]

與“a”到“z”范圍內(nèi)的任何小寫字母字符匹配。[^a-z]反向字符范圍。

與不在指定范圍內(nèi)的任何字符匹配。[^a-z]

與不在范圍“a”到“z”內(nèi)的任何字符匹配。{n}正好匹配

n

次。

n

是非負(fù)整數(shù)。o{2}

與“Bob”中的“o”不匹配,但與“food”中的兩個“o”匹配。{n,}至少匹配

n

次。

n

是非負(fù)整數(shù)。*

{0,}

相等。+

{1,}

相等。o{2,}

與“Bob”中的“o”不匹配,但與“foooood”中的所有“o”匹配。{n,m}匹配至少

n

次,至多

m

次。

n

m

是非負(fù)整數(shù),其中

n

<=

m。

逗號和數(shù)字之間不能有空格。?

{0,1}

相等。在搜索字符串“1234567”中,\d{1,3}與“123”、“456”和“7”匹配。注意:若要匹配這些特殊字符之一,必須首先轉(zhuǎn)義字符,即,在字符前面加反斜杠字符(\)。例如,若要搜索“?”文本字符,可使用表達(dá)式“\?”。例如:Pattern1="[a-zA-Z0-9]{6,10}"上面正則表達(dá)式表示該字符串由英文、數(shù)字組成,且長度為6-10個字符。Pattern2="[1][3579]\\d{9}"上面正則表達(dá)式表示該字符串第一位是1,第二位是3579中的一個,后面跟9位數(shù)字。Pattern3="[1-9]\\d{5,10}"知識點(diǎn)2-正則表達(dá)式的常用函數(shù)Python語言通過標(biāo)準(zhǔn)庫中的re模塊支持正則表達(dá)式Re模塊提供了一些根據(jù)正則表達(dá)式進(jìn)行查找、替換、分割字符串的函數(shù),這些函數(shù)使用一個正則表達(dá)式作為第一個參數(shù)。Re模塊常用的函數(shù)如表2.4所示。表2.4re模塊常用的函數(shù)函數(shù)描述match(pattern,string,flags=0)根據(jù)pattern從string的頭部開始匹配字符串,只返回第1次匹配成功的對象;否則,返回Nonefindall(pattern,string,flags=0)根據(jù)pattern在string中匹配字符串。如果匹配成功,返回包含結(jié)果的列表;否則,返回空列表。當(dāng)pattern中有分組時,返回包含多個元組的列表,每個元組對應(yīng)1個分組。Falgs表示規(guī)則選項(xiàng),規(guī)則選項(xiàng)用于輔助匹配。sub(pattern,repl,string,count=0)根據(jù)指定的正則表達(dá)式,替換源字符中的子串。Pattern是一個正則表達(dá)式,repl是用于替換的字符串,string是源字符串。如果count等于0,則返回sring中匹配的的所有結(jié)果;如果count大于0,則返回前count個匹配結(jié)果。subn(pattern,repl,string,count=0)作用和sub()相同,返回一個二元的元組。第1個元素是替換結(jié)果,第2個元素是替換的次數(shù)。search(pattern.flags=0)根據(jù)pattern在string中匹配字符串,只返回第一次匹配成功的對象。如果匹配失敗,返回Nplie(pattern,flags=0)編譯正則式pattern,返回1個pattern的對象。split(pattern,string,maxplit=0)根據(jù)pattern分隔string,maxplit表示最大的分隔數(shù)。escape(pattern)匹配字符串中的特殊字符,如*、+、?等(1)match()方法re.match()嘗試從字符串的起始位置開始匹配一個模式,如果不是起始位置匹配成功的話,就返回None,否則返回一個對象,函數(shù)原型為:re.match(pattern,string,flag=0)函數(shù)的參數(shù)說明如下表2.5所示:表2.5match函數(shù)參數(shù)說明參數(shù)描述pattern匹配的正則表達(dá)式string要匹配的字符串flags標(biāo)志位,用于控制正則表達(dá)式的匹配方式,如:是否區(qū)分大小寫,多行匹配等。也可以理解成修飾符,具體修飾符參閱表2.6所示。正則表達(dá)式在使用中還用到修飾符,修飾符也叫標(biāo)記,標(biāo)記用于指定額外的匹配策略。標(biāo)記不寫在正則表達(dá)式里,標(biāo)記位于\t"/weixin_43366084/article/details/_blank"表達(dá)式之外,常用的正則表達(dá)式修飾符如表2.6所示。表2.6正則表達(dá)式修飾符修飾符描述re.I使匹配對大小寫不敏感re.L做本地化識別匹配re.M多行匹配,影響^和$re.S使.匹配包括換行在內(nèi)的所有字符re.U根據(jù)Unicode字符集解析字符。這個標(biāo)志影響\w,\W,\b,\B.re.X該標(biāo)志通過給予你更靈活的格式以便你將正則表達(dá)式寫得更易于理解。對match()函數(shù)的使用,舉例如下。01importre02str1=""03str2="www"04str3="com"05print(re.match(str2,str1,re.I))06print(re.match(str3,str1))01行導(dǎo)入re模塊,02~04行定義三個字符串;05行求www是否在字符串str1的開始位置得到了匹配,在匹配過程中,忽略大小寫,如果得到了匹配,返回匹配的開始和結(jié)束位置;06行表示求字符串com是否在str1的開始位置得到了匹配。運(yùn)行程序,結(jié)果如圖:圖2.15match()函數(shù)匹配舉例由運(yùn)行結(jié)果可知,字符串str2在字符串str1的開始位置得到了匹配,返回了匹配的開始和結(jié)束位置(0,3),這個區(qū)間是一個左閉右開區(qū)間,表示匹配的位置是0、1、2三個位置;字符串str3在字符串str1的開始位置沒有得到匹配,故返回為None。(2)search()方法search掃描整個字符串并返回第一個成功的匹配,如果匹配失敗,則返回None,該方法的原型為:re.search(pattern,string,flags=0)pattern參數(shù)表示正則中的模式字符串;string參數(shù)表示要被查找替換的原始字符串;flags參數(shù)表示標(biāo)志位,用于控制正則表達(dá)式的匹配方式。01importre02str1=""03str2="www"04str3="com"05str4="baidu"06print(re.search(str2,str1,re.I))07print(re.search(str3,str1))08print(re.search(str4,str1))01行導(dǎo)入re模塊,02~05行定義四個字符串;06行表示在起始位置匹配,且不區(qū)分大小寫;07行不在始位置匹配查找com字符串是否在str1字符串中存在,08行在str1字符串中查存在有str4字符串。運(yùn)行程序,結(jié)果如圖2-16所示。圖2-16match()函數(shù)匹配舉例(3)findall()方法findall方法與search方法比較類似,findall方法可以遍歷匹配,可以獲取字符串中所有匹配的字符串,將找到的結(jié)果返回到一個列表中,如果找不到,返回的是一個空列表,該函數(shù)的原型為:findall(pattern,string,flags=0)pattern參數(shù)表示正則中的模式字符串,就是正則表達(dá)式;string參數(shù)表示要被查找替換的原始字符串;flags參數(shù)表示標(biāo)志位,用于控制正則表達(dá)式的匹配方式。注意:findall()函數(shù)是逐行匹配的。返回string中所有與pattern相匹配的全部字串,返回形式為列表。舉例如下:01importre02str1=",WWW.G.CN"03str2="www"04str3="com"05str4="baidu"06print(re.findall(str2,str1,re.I))07print(re.findall(str3,str1))08print(re.findall(str4,str1))09print(re.findall("GG",str1))01行導(dǎo)入re模塊;02~05行定義字符串;06~08行進(jìn)行各種位置的匹配查找;09行表示在str1字符串中查找字符串GG。運(yùn)行程序,結(jié)果如圖2-17所示。圖2-17findall()函數(shù)的使用(4)sub()函數(shù)Python的re模塊提供了re.sub用于替換字符串中的匹配項(xiàng),該函數(shù)將匹配上的字符串替換成指定的字符串,返回新的字符串,該函數(shù)的原型為:sub(pattern,repl,string,count=0,flags=0)參數(shù)說明:pattern:正則表達(dá)式。repl:替換的字符串,也可以是一個函數(shù)。string:要被查找替換的原始字符串。count:模式匹配后替換的最大次數(shù),默認(rèn)0表示替換所有的匹配。flags:編譯時用的匹配模式,數(shù)字形式。注意:sub()函數(shù)的前三個參數(shù)為必填參數(shù),后兩個參數(shù)為可選參數(shù)。舉例如下:01importre02phone="400-889-9315#這是美的售后客服電話"03#刪除注釋04num=re.sub(r'#.*$',"",phone)05print("美的客服電話為:",num)06#將非數(shù)字的‘-’去掉07num=re.sub(r'\D',"",phone)08print("美的客服電話為:",num)注意:python中,字符串前面加r或者R前綴,目的是禁用轉(zhuǎn)義符“\”的功能。運(yùn)行程序,結(jié)果如圖2-18所示。圖2-18re.sub()函數(shù)的使用知識點(diǎn)3-正則表達(dá)式提取內(nèi)容實(shí)例將前面?zhèn)ゴ罂挂呔窬W(wǎng)頁的的“生命至上、舉國同心、舍生忘死、尊重科學(xué)、命運(yùn)與共”二十字精神使用Re正則表達(dá)式給提取出來。01str1='''02<divclass="container">03<h2>偉大抗疫精神精神內(nèi)涵解讀</h2>04<divclass="spirit">05<p>生命至上</p>06<p>舉國同心</p>07<p>舍生忘死</p>08<p>尊重科學(xué)</p>09<p>命運(yùn)與共</p>10</div>11<divclass="interpret">12<p>13偉大抗疫精神,同中華民族長期形成的特質(zhì)稟賦和文化基因一脈相承,是愛國主義、集體主義、社會主義精神的傳承和發(fā)展,是中國精神的生動詮釋,豐富了民族精神和時代精神的內(nèi)涵。我們要在全社會大力弘揚(yáng)偉大抗疫精神,使之轉(zhuǎn)化為全面建設(shè)社會主義現(xiàn)代化國家、實(shí)現(xiàn)中華民族偉大復(fù)興的強(qiáng)大力量。14</p>15</div>16'''17importre18str1=re.sub('\n','',str1)19part1=pile(r'<divclass="spirit">(.*?)</div>',re.I|re.S|re.M)20part2=pile(r'<p>(.*?)</p>',re.I|re.S|re.M)21result1=part1.findall(str1)[0]22#sub(模型,替換為的字符,目標(biāo)原字符串,替換次數(shù))23result1=re.sub('<p>|</p>',"",result1)#替換輸出結(jié)果中的<p>和</p>標(biāo)記24result2=part2.findall(str1)25print(result1)26foriinrange(0,len(result2)-1):#循環(huán)減少1,去掉最后一個p標(biāo)記27print(result2[i])01~16行是定義的網(wǎng)頁的內(nèi)容,將網(wǎng)頁的內(nèi)容放到了str1中;17行導(dǎo)入re模塊;18行去掉字符串中的換行符;19行定義將類名等于spirit的div中的內(nèi)容提取的規(guī)則part1;20行將定義將p標(biāo)簽內(nèi)容進(jìn)行提取的規(guī)則part2;21行使用findall()方法使用part1規(guī)則將類名等于spirit的div中的內(nèi)容提取出來,將結(jié)果放到了result1變量中;23行將result1中的p標(biāo)簽使用空格替換到;24行將str1字符串中的包含了p標(biāo)簽的內(nèi)容提取出來,放到變量reuslt2變量中;25行打印輸出result1變量的值;26行對result2進(jìn)行遍歷;27行打印輸出每次遍歷的結(jié)果。運(yùn)行程序,結(jié)果如圖2-21。圖2-21提取出來的關(guān)鍵字內(nèi)容四、上機(jī)練習(xí)上機(jī)練習(xí)主要針對本章中需要重點(diǎn)掌握的知識點(diǎn),以及在程序中容易出錯的內(nèi)容進(jìn)行練習(xí),通過上機(jī)練習(xí)可以考察同學(xué)對知識點(diǎn)的掌握情況,對代碼的熟練程度。上機(jī)一:(熟悉Python環(huán)境變量的設(shè)置)上機(jī)二:(使用pygame播放音樂)五、歸納總結(jié)教師回顧本節(jié)課所講的內(nèi)容,并通過實(shí)現(xiàn)Pygame實(shí)現(xiàn)音樂播放的方式引導(dǎo)學(xué)生解答問題并給予指導(dǎo)。六、布置作業(yè)教師通過高校教輔平臺(/)布置本節(jié)課作業(yè)以及下節(jié)課的預(yù)習(xí)作業(yè)。作業(yè)布置教材項(xiàng)目二

溫馨提示

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

最新文檔

評論

0/150

提交評論