Python網(wǎng)絡爬蟲項目式教程 課件 項目1、2 Python網(wǎng)絡爬蟲、使用正則表達式提取網(wǎng)頁中內容_第1頁
Python網(wǎng)絡爬蟲項目式教程 課件 項目1、2 Python網(wǎng)絡爬蟲、使用正則表達式提取網(wǎng)頁中內容_第2頁
Python網(wǎng)絡爬蟲項目式教程 課件 項目1、2 Python網(wǎng)絡爬蟲、使用正則表達式提取網(wǎng)頁中內容_第3頁
Python網(wǎng)絡爬蟲項目式教程 課件 項目1、2 Python網(wǎng)絡爬蟲、使用正則表達式提取網(wǎng)頁中內容_第4頁
Python網(wǎng)絡爬蟲項目式教程 課件 項目1、2 Python網(wǎng)絡爬蟲、使用正則表達式提取網(wǎng)頁中內容_第5頁
已閱讀5頁,還剩119頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

項目一保存服務器網(wǎng)頁到本地

項目要

求本項目是了解爬蟲的概念、分類等,同時掌握Python網(wǎng)絡爬蟲的開發(fā)環(huán)境的搭建,使用Urilib3庫請求服務器上的網(wǎng)頁,將網(wǎng)頁保存到本地。

項目分

析要完成項目任務,至少需要具備兩個基本條件:一是需要在計算機上安裝和配置Python開發(fā)環(huán)境,然后要了解Urilib3庫最簡單使用,該項目分2個任務,分別是認識爬蟲和將請求到的網(wǎng)頁保存到本地。

項目目

標【知識目標】熟悉網(wǎng)絡爬蟲的基本概念,掌握Python和Mongondb以及MySQL數(shù)據(jù)庫的安裝與配置?!灸芰δ繕恕繒惭bPython網(wǎng)絡開發(fā)環(huán)境和將服務器網(wǎng)頁保存到本地。【素質目標】提高學生的發(fā)現(xiàn)問題、分析問題、解決問題的能力。

知識導

圖任務一認識爬蟲及Python的安裝--任務演示本任務是初步認識爬蟲,認識爬蟲的概念、爬蟲的分類、爬蟲的作用、爬蟲開發(fā)中的法律和道德問題,然后開始安裝Python的開發(fā)環(huán)境,輸出“我親愛的祖國我永遠緊依著你的心窩!”,同時播放“我和我的祖國”歌曲。任務一

認識爬蟲及Python的安裝–知識準備Python的安裝pygame的簡單使用使用pygame播放歌曲網(wǎng)絡爬蟲的基本概念1.網(wǎng)絡爬蟲的基本概念爬蟲產(chǎn)生的背景目前的互聯(lián)網(wǎng)已經(jīng)邁入大數(shù)據(jù)時代,通過對海量的數(shù)據(jù)進行分析,能夠產(chǎn)生極大的商業(yè)價值。1.網(wǎng)絡爬蟲的基本概念爬蟲產(chǎn)生的背景數(shù)據(jù)分析應用反饋數(shù)據(jù)采集1.網(wǎng)絡爬蟲的基本概念爬取的網(wǎng)絡數(shù)據(jù)1.網(wǎng)絡爬蟲的基本概念結論

無論是搜索引擎,還是個人或單位獲取目標數(shù)據(jù),都需要從公開網(wǎng)站上爬取大量數(shù)據(jù),在此需求下,爬蟲技術應運而生,并迅速發(fā)展成為一門成熟的技術。1.網(wǎng)絡爬蟲的基本概念什么是爬蟲?1.網(wǎng)絡爬蟲的基本概念什么是爬蟲如果說網(wǎng)絡像一張網(wǎng),那么爬蟲就是網(wǎng)上的一只小蟲子,在網(wǎng)上爬行的過程中遇到了數(shù)據(jù),就把它抓取下來。1.網(wǎng)絡爬蟲的基本概念爬蟲的定義網(wǎng)絡爬蟲,很多地方也稱為網(wǎng)頁蜘蛛,是一種按照一定的規(guī)則,按照某種規(guī)則自動爬取互聯(lián)網(wǎng)信息的程序或腳本。像谷歌搜索引擎、百度搜索引擎等就是典型的爬蟲,這些搜索引擎將互聯(lián)網(wǎng)上海量的網(wǎng)頁信息進行爬取,將爬到的每個網(wǎng)頁上信息進行復制,然后將該信息保存到自己所在的服務器上,然后對爬取到的數(shù)據(jù)按照某種規(guī)則,進行必要的處理。1.網(wǎng)絡爬蟲的基本概念爬蟲的定義

這里的數(shù)據(jù)是指互聯(lián)網(wǎng)上公開的并且可以訪問到的網(wǎng)頁信息,而不是網(wǎng)站的后臺信息(沒有權限訪問),更不是用戶注冊的信息(非公開的)。1.網(wǎng)絡爬蟲的基本概念爬蟲的作用思考爬蟲具體能做些什么呢?爬蟲的作用1.網(wǎng)絡爬蟲的基本概念爬蟲的作用1.網(wǎng)絡爬蟲的基本概念爬蟲的作用1.網(wǎng)絡爬蟲的基本概念爬蟲的分類-按照使用場景進行分類通用爬蟲聚焦爬蟲又稱主題網(wǎng)絡爬蟲,是指選擇性地爬行那些與預先定義好的主題相關的頁面的網(wǎng)絡爬蟲。又稱全網(wǎng)爬蟲,將互聯(lián)網(wǎng)上的網(wǎng)頁下載到本地,形成一個互聯(lián)網(wǎng)內容的鏡像備份。1.網(wǎng)絡爬蟲的基本概念爬蟲的分類-按照爬取形式分類累積式爬蟲聚焦爬蟲在具有一定量規(guī)模的網(wǎng)絡頁面集合的基礎上,采用更新數(shù)據(jù)的方式選取已有集合中的過時網(wǎng)頁進行抓取,以保證所抓取到的數(shù)據(jù)與真實網(wǎng)絡數(shù)據(jù)足夠接近。累積式爬蟲是指從某一個時間點開始,通過遍歷的方式抓取系統(tǒng)所能允許存儲和處理的所有網(wǎng)頁。1.網(wǎng)絡爬蟲的基本概念爬蟲的分類-按照爬取數(shù)據(jù)的存在方式分類表層爬蟲深層爬蟲爬取深層網(wǎng)頁的爬蟲就叫做深層爬蟲。深層網(wǎng)頁是那些大部分內容不能通過靜態(tài)鏈接獲取的、隱藏在搜索表單后的,只有用戶提交一些關鍵詞才能獲得的Web頁面。爬取表層網(wǎng)頁的爬蟲叫做表層爬蟲。表層網(wǎng)頁是指傳統(tǒng)搜索引擎可以索引的頁面,以超鏈接可以到達的靜態(tài)網(wǎng)頁為主構成的Web頁面。2.Python的安裝Python的安裝包,可以直接從官網(wǎng)下載,Python下載地址:/,單擊單擊點擊Downloads下選擇Widows,再選擇Python的版本下載。這里版本主要分成3個版本:embeddablezipfile-解壓版:解壓后配置環(huán)境變量就可以直接使用;executableinstaller-安裝版:需要安裝并配置環(huán)境變量才能使用;web-basedinstaller-在線安裝版:需要連接網(wǎng)絡安裝,3個版本如圖1-7所示。x86代表32位,x86-64代表64位,根據(jù)您的計算機系統(tǒng)是32位系統(tǒng)還是64位系統(tǒng)選擇下載。2.Python的安裝安裝步驟:(1)雙擊包裝包文件準備安裝,如圖所示。

2.Python的安裝安裝步驟:(2)選擇InstallNow(默認安裝方式),一路點下去,完成安裝,如圖所示。

2.Python的安裝配置環(huán)境變量:(1)在計算機上右擊,選擇屬性,如圖。

2.Python的安裝配置環(huán)境變量:(2)在彈出對話框上左鍵單擊“高級系統(tǒng)設置”,如圖所示。

2.Python的安裝配置環(huán)境變量:(3)在高級面板中,選擇系統(tǒng)變量中的Path,點編輯,如圖所示。

2.Python的安裝配置環(huán)境變量:(4)請注意配置環(huán)境變量,將“;C:\Python37;C:\Python37\Scripts;”(注意,復制雙引號中間的內容,不要復制雙引號)復制到環(huán)境變量中的系統(tǒng)變量的Path變量的最后邊位置上去,如圖所示。

2.Python的安裝測試:按下鍵盤上的win+R鍵,調出運行窗口,在運行窗口中輸入cmd回車,在cmd下輸入python-V,可以看到Python的版本號。

3.pygame的簡單使用pygame本身是用來開發(fā)游戲的,這里使用該框架來播放mp3格式的音頻文件。要使用該框架,可以使用如下命令進行安裝:pipinstallpygame該框架主要使用到了如下方法和模塊。(1)pygame.init()方法該函數(shù)在使用pygame時進行初始化,只有引用了該函數(shù)才能使用pygame提供的所用功能。

(2)pygame.Rect()方法該函數(shù)可以設置一張圖片的位置以及大小,該函數(shù)主要包含如下構造函數(shù)。1)rect=pygame.Rect(left,top,width,height)2)rect=pygame.Rect((left,top),(width,height))3)rect=pygame.Rect(object)3.pygame的簡單使用(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等格式。4.使用pygame播放歌曲代碼實現(xiàn):01importpygame02importtime03if__name__=='__main__':04print("我親愛的祖國我永遠緊依著你的心窩!")05file_name="whwdzg.mp3"06pygame.mixer.init()#只初始化音頻部分07#載入的音樂不會全部放到內容中,而是以流的形式播放的,即在播放的時候才會一點點從文件中讀取。08track=pygame.mixer.music.load(file_name)09#播放載入的音樂。該函數(shù)立即返回,音樂播放在后臺進行。10pygame.mixer.music.play()11time.sleep(300)12pygame.mixer.music.stop()任務一認識爬蟲及Python的安裝–任務拓展1.爬蟲與反爬蟲很多網(wǎng)絡爬蟲對網(wǎng)頁的爬取能力很差,現(xiàn)在的網(wǎng)站會采取一些防爬蟲措施來阻止爬蟲的不當爬取行為。任務一認識爬蟲及Python的安裝–任務拓展1.爬蟲與反爬蟲對于采取了防爬蟲措施的網(wǎng)站,爬蟲程序需要采取相應的應對策略,才能成功地爬取到網(wǎng)站上的數(shù)據(jù)。任務一認識爬蟲及Python的安裝–任務拓展1.爬蟲與反爬蟲使用代理IP

使用代理IP的一個好處是可以匿名保護,使用數(shù)據(jù)中心代理后,使用的IP地址將是您選擇的服務器的IP地址,隱藏您的真實IP地址,從而保護您的互聯(lián)網(wǎng)隱私,使得服務器認為是真實的用戶在訪問,使得服務器認定不是爬蟲行為。任務一認識爬蟲及Python的安裝–任務拓展1.爬蟲與反爬蟲偽裝User-agentUser-agent表示用戶代理,是HTTP協(xié)議中的一個字段,其作用是描述發(fā)出HTTP請求的終端信息。每個正規(guī)的爬蟲都有固定的User-agent,只要將這個字段設為知名的用戶代理,就能夠成功偽裝。任務一認識爬蟲及Python的安裝–任務拓展1.爬蟲與反爬蟲降低訪問頻率User-agent表示用戶代理,是HTTP協(xié)議中的一個字段,其作用是描述發(fā)出HTTP請求的終端信息。每個正規(guī)的爬蟲都有固定的User-agent,只要將這個字段設為知名的用戶代理,就能夠成功偽裝。任務二將請求到的網(wǎng)頁保存到本地--任務演示本任務在Python環(huán)境搭建的基礎上,使用urllib庫,將請求到的網(wǎng)頁保存到本地。任務二將請求到的網(wǎng)頁保存到本地–知識準備安裝和配置MySQL數(shù)據(jù)庫簡單使用urllib庫1簡單使用urllib庫urllib是一個http請求的Python自帶的標準庫,無需安裝,直接可以用。并且提供了如下功能:網(wǎng)頁請求、響應獲取、代理和cookie設置、異常處理、URL解析,可以說是一個比較強大的模塊。urllib.request的GET請求是如下方式:urllib.request.urlopen(url,data,timeout)url:請求地址data:請求數(shù)據(jù)timeout:請求超時時間data和timeout為可選參數(shù),可以為空,也就是說可以不寫。1簡單使用urllib庫【例】使用urllib庫請求網(wǎng)頁。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)))1簡單使用urllib庫【例】使用urllib庫請求網(wǎng)頁。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)))2安裝和配置MySQL數(shù)據(jù)庫網(wǎng)絡爬蟲采集到數(shù)據(jù)以后,一般是放到數(shù)據(jù)庫進行保存。數(shù)據(jù)庫的選擇一般有SQLite、MySQL、以及MongoDB等數(shù)據(jù)庫。這里首先介紹MySQL數(shù)據(jù)庫的安裝。這里以Mysql社區(qū)版mysql-installer-community-,在64位系統(tǒng)Windows系統(tǒng)安裝為例,給出其具體的安裝步驟。2安裝和配置MySQL數(shù)據(jù)庫1)雙擊打開msi安裝包,勾選接收許可安裝條款,單擊“Next”按鈕后進入安裝選擇,如圖所示。2安裝和配置MySQL數(shù)據(jù)庫2)在彈出框中選擇64位版本,如圖所示。2安裝和配置MySQL數(shù)據(jù)庫3)在下方左側欄內選擇需要安裝的程序,單擊右箭頭移至安裝欄內,如圖所示。2安裝和配置MySQL數(shù)據(jù)庫4)單擊“Next”按鈕后,會檢測系統(tǒng)上是否安裝有相關依賴的軟件,若沒有安裝,則會出現(xiàn)類似下圖所示的界面,如圖所示。2安裝和配置MySQL數(shù)據(jù)庫5)單擊“Next”按鈕后,進入安裝確認步驟,將被安裝的程序會顯示在框內,單擊“Execute”按鈕將開始安裝過程,如圖所示。2安裝和配置MySQL數(shù)據(jù)庫6)安裝完成后,還需配置服務,一般用戶類型選擇“DevelopmentMachine”,MySQL的默認端口為3306,如圖所示。2安裝和配置MySQL數(shù)據(jù)庫7)設置root賬戶的密碼,可添加一個具有普通用戶權限的MySQL用戶賬戶,也可不添加,如圖所示。2安裝和配置MySQL數(shù)據(jù)庫8)勾選“ConfigureMySQLServerasaWindowsService”后將以系統(tǒng)用戶運行Windows服務,在Windows下MySQL默認服務名為mysql56,如圖所示。2安裝和配置MySQL數(shù)據(jù)庫9)最后進入服務配置應用步驟,單擊“Execute”按鈕將開始執(zhí)行,如圖所示。2安裝和配置MySQL數(shù)據(jù)庫10)執(zhí)行成功的服務配置將變?yōu)榫G色的勾選狀態(tài),單擊“Finish”按鈕完成配置過程,如圖所示。2安裝和配置MySQL數(shù)據(jù)庫11)打開“環(huán)境變量”對話框。右鍵單擊“我的電腦”圖標,單擊“高級系統(tǒng)設置”按鈕,在彈出的“系統(tǒng)屬性”對話框中單擊“環(huán)境變量”按鈕,即可彈出的“環(huán)境變量”對話框,如圖所示。2安裝和配置MySQL數(shù)據(jù)庫12)新建環(huán)境變量“MYSQL_HOME”,變量值填寫“C:\ProgramFiles\MySQL\MySQLServer5.6”,其中MySQL默認安裝在C:\ProgramFiles路徑下,如圖所示。2安裝和配置MySQL數(shù)據(jù)庫13)在“Path”變量后面添加“%MYSQL_HOME%\bin”,如圖所示。2安裝和配置MySQL數(shù)據(jù)庫14)檢驗環(huán)境配飾是否生效,使用管理員權限運行命令提示符,使用“netstartmysql56”命令啟動MySQL服務,使用“netstopmysql56”可關閉MySQL服務,如圖所示。任務二將請求到的網(wǎng)頁保存到本地–任務實施對目標網(wǎng)頁url=“/2019/09/04/ARTI9r6wRsrNhbZv4DwlWC5T190904.shtml”使用urllib庫發(fā)起請求,將網(wǎng)頁的響應數(shù)據(jù)保存到本地,然后實現(xiàn)本地可以瀏覽訪問。這里可以將該網(wǎng)頁的css文件也發(fā)起一次請求,可以將本地文件也保存到本地。這樣,這里一共需要兩次發(fā)起網(wǎng)頁請求,兩次保存網(wǎng)頁的操作,這里給出實例代碼。importurllib.requestlist1=['/2019/09/04/ARTI9r6wRsrNhbZv4DwlWC5T190904.shtml','/photoAlbum/templet/common/DEPA1452765360136771/style_arti.css']defsave_data():foriinrange(0,2):response=urllib.request.urlopen(list1[i])response=response.read().decode('utf-8')ifi==0:f=open("./gzzq.html","w",encoding="utf-8")#保存網(wǎng)頁f.write(response)else:f=open("./index.css","w",encoding="utf-8")#保存CSSf.write(response)save_data()任務二將請求到的網(wǎng)頁保存到本地–任務實施對目標網(wǎng)頁url=“/2019/09/04/ARTI9r6wRsrNhbZv4DwlWC5T190904.shtml”使用urllib庫發(fā)起請求,將網(wǎng)頁的響應數(shù)據(jù)保存到本地,然后實現(xiàn)本地可以瀏覽訪問。這里可以將該網(wǎng)頁的css文件也發(fā)起一次請求,可以將本地文件也保存到本地。這樣,這里一共需要兩次發(fā)起網(wǎng)頁請求,兩次保存網(wǎng)頁的操作,這里給出實例代碼。

雖然將網(wǎng)頁css保存到了本地,打開網(wǎng)頁是可以正常瀏覽的,應為原始網(wǎng)頁只有一個css文件,且該文件使用的是絕對路徑的網(wǎng)址,如圖所示。任務二將請求到的網(wǎng)頁保存到本地–任務實施

雖然將網(wǎng)頁css保存到了本地,打開網(wǎng)頁是可以正常瀏覽的,應為原始網(wǎng)頁只有一個css文件,且該文件使用的是絕對路徑的網(wǎng)址,如圖所示。程序的運行結果如圖。任務二將請求到的網(wǎng)頁保存到本地–任務拓展

雖然將網(wǎng)頁css保存到了本地,打開網(wǎng)頁是可以正常瀏覽的,應為原始網(wǎng)頁只有一個css文件,且該文件使用的是絕對路徑的網(wǎng)址,如圖所示。使用urllib庫向指定網(wǎng)址“/get”發(fā)起請求,將返回的響應頭保存到數(shù)據(jù)庫,使用下面代碼創(chuàng)建數(shù)據(jù)庫表。--數(shù)據(jù)庫:`httpbin`----------------------------------------------------------------表的結構`httpbindata`--CREATETABLEIFNOTEXISTS`httpbindata`(`id`int(20)NOTNULLAUTO_INCREMENT,`data`textNOTNULL,PRIMARYKEY(`id`))ENGINE=MyISAMDEFAULTCHARSET=utf8AUTO_INCREMENT=2;----轉存表中的數(shù)據(jù)`httpbindata`--任務二將請求到的網(wǎng)頁保存到本地–任務拓展這里給出Python的代碼。importpymysqlimporturllib.requesturl='/get'response=urllib.request.urlopen(url)response=response.read().decode('utf-8')conn=pymysql.Connect(host='',port=3306,user='root',password='root',db='httpbin')cursor=conn.cursor()#獲取游標sql="insertintohttpbindata(data)values(%s);"print(response)try:cursor.execute(sql,(response))mit()print("數(shù)據(jù)插入成功")exceptExceptionasresult:print("數(shù)據(jù)插入失?。?+str(result))謝謝項目二使用正則表達式提取網(wǎng)頁中內容

項目要

求本項目學習正則相關的知識,將保存到本地的網(wǎng)頁使用正則表達式提取有用的信息。

項目分

析要實現(xiàn)此任務,需要有HTML、CSS、JSON、JavaScript等知識,同時還需要了解HTTP請求的相關知識,網(wǎng)頁信息獲取過程需要一些解析工具以及正則表達式的知識,同時還需要網(wǎng)頁開發(fā)相關的知識。本項目介紹Web初步知識、HTTP請求、正則表達式等。

項目目

標【知識目標】熟悉HTML,掌握CSS和Javascipt的基礎知識以及Re正則表達式?!灸芰δ繕恕繒褂谜齽t表達式提取網(wǎng)頁中的內容?!舅刭|目標】提高學生的發(fā)現(xiàn)問題、分析問題、解決問題的能力。

知識導

圖任務一網(wǎng)頁展示偉大抗疫精神--任務演示本任務是使用CSS基礎知識,展示偉大抗疫精神,下圖圖片實現(xiàn)的效果。任務一

認識爬蟲及Python的安裝–知識準備CSS基礎知識CSS樣式選擇器HTML基礎知識1.HTML基礎知識HTML(HyperTextMarkupLanguage)稱為超文本標記語言,是一種描述文檔結構的標記語言,它是一種應用非常廣泛的網(wǎng)頁格式,也是最早被用來顯示網(wǎng)頁的語言之一。注意:HTML不是編程語言,它只是一門網(wǎng)頁標記語言。Web瀏覽器能讀懂HTML文件,并以網(wǎng)頁顯示顯示出來。1.HTML基礎知識(1)標記的格式HTML中的標記的主要作用是用來控制網(wǎng)頁的顯示方式,標記一般有<…>和</…>組成,<…>一般是標記的開頭,中間的省略號表示其他字符串,</…>表示標記的結束。標記分為雙標記和單標記。雙標記要求<…>和</…>成對出現(xiàn),典型的標記如下:<html>…</html><html>表示一個網(wǎng)頁的開始,</html>表示網(wǎng)頁的結束,中間的省略號表示網(wǎng)頁的具體內容,包含若干除<html>…</html>之外的標記和若干文字、圖片、視頻等內容。<head>…</head><head>表示一個網(wǎng)頁的頭部,</head>表示網(wǎng)頁頭部結束,中間的省略號表示一個網(wǎng)頁的頭部的內容。1.HTML基礎知識<title>…</title><title>表示一個網(wǎng)頁的標題的開始,</title>表示一個網(wǎng)頁的標題的結束。中間的省略號表示這個網(wǎng)頁標題的實際內容,該內容要求是文字內容。<body>…</body><body>表示一個網(wǎng)頁主體的開始,</body>表示一個網(wǎng)頁主體的結束,中間的省略號表示這個網(wǎng)頁主體的實際內容,這個內容可以包含若干標記和文字、圖片、視頻等內容。1.HTML基礎知識(2)標記的使用可以按照以下三種方式使用標記。1)<標記名>文本或超文本</標記名>舉例如下:<title>百度首頁</title>注意:超文本是用超鏈接的方法,將各種不同的位置的文字信息組織在一起,形成一個網(wǎng)狀文本。這里超練級是指鏈接的載體和鏈接的目標地址兩個部分的內容。鏈接的載體指的是顯示鏈接的部分,即包含超鏈接的文字或圖像。鏈接的目標是指單擊超鏈接后所顯示的內容。例如<ahref=“/”>百度</a>就構成了一個超鏈接。2)<標記名屬性名1=“屬性值1”屬性名2=“屬性值2”>文本或超文1.HTML基礎知識3)<標記名>舉例如下:<hr>該標簽表示在HTML頁面中創(chuàng)建一條水平線。注意:HTML標記及屬性中字母是不區(qū)分大小寫的,標記名與左尖括號之間是不能留空白的,標記中用到雙引號的地方都是英文中的引號。2.CSS基礎知識CSS指層疊樣式表(CascadingStyleSheets),同樣CCS也不是編程語言,CSS用來告訴瀏覽器如何指定樣式、布局等。(1)CSS樣式表的分類在HTML中使用CSS樣式,主要有三種做法:1)行內式設置HTML標簽的時候,設置該標簽的style屬性,style屬性就是包含了樣式。其一般格式為:<標簽名style=”屬性1:值1;…屬性n:值n;”>內容</標簽名>舉例如下:<pstyle=”font-size:16px;color:red”>這是一段文字</p>2.CSS基礎知識如果我們把它放到一個網(wǎng)頁中,會是什么樣的一個效果呢?<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>我的首頁</title></head><body><pstyle="font-size:16px;color:red">這是一段文字</p></body></html>2.CSS基礎知識運行程序,效果如下。2.CSS基礎知識2)內部樣式表什么是內部樣式表呢?內標樣式表是在HTML中的head標簽中定義style標簽,在其中書寫樣式。內部樣式表意味著CSS樣式存在HTML的內部,作用范圍是只對所在的網(wǎng)頁有效。2.CSS基礎知識

<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>我的首頁</title><styletype="text/css">p{font-size:20px;color:blue;}</style></head><body><p>這是一段文字</p></body></html>注意:內部樣式表只是實現(xiàn)了CSS和HTML的部分分離,沒有實現(xiàn)完全分離。2.CSS基礎知識3)外部樣式表外部樣式表顧名思義,是將樣式表和HTML文件完全分離。在HTML文件內部,一般借助于link標簽將CSS引入。index.html文件的內容如下:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>我的首頁</title><linkrel="stylesheet"type="text/css"href="style.css"></head><body><p>這是一段文字</p></body></html>2.CSS基礎知識3)外部樣式表style.css文件的內容如下:p{font-size:24px;color:green;text-align:center;}注意:index.html文件和style.css文件應該確保在同一個目錄下。外部樣式表可以同時作用到多個HTML文件。運行程序,結果如下:3.CSS選擇器3)外部樣式表什么是選擇器呢?每一條css樣式定義由兩部分組成,形式如下:選擇器{樣式}在{}之前的部分就是“選擇器”?!斑x擇器”指明了{}中的“樣式”的作用對象,也就是“樣式”作用于網(wǎng)頁中的哪些元素。CSS主要四種基本選擇器,他們分別是標簽選擇器、類選擇器、ID選擇器以及通用選擇器。3.CSS選擇器(1)CSS標簽選擇器一個完整的HTML頁面是有很多不同的標簽組成,而標簽選擇器,則是決定哪些標簽采用相應的CSS樣式。CSS標簽選擇器主要有div、h1、p、body、ul、li等等,下面通過一個例子來加以說明。3.CSS選擇器<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><styletype="text/css">h1{text-align:center;}p{text-indent:2em;line-height:26px;font-size:16px;}</style><title>韓國使用高科技公交車候車亭對抗新冠疫情</title></head><body><h1>韓國使用高科技公交車候車亭對抗新冠疫情</h1><p>韓國正在使用高科技的公共汽車候車亭來防止Covid-19的傳播。這10個"智能候車亭"配備了用于檢查溫度的外部熱像儀和內部的紫外線消毒燈。首都首爾市城東區(qū)主要公交線路沿線都安裝了太陽能供電的候車亭。乘客必須站在一個自動熱成像攝像頭前,只有當檢測到溫度低于99.5F時,滑動門才會打開。下方還安裝有另一個攝像頭,用于檢測兒童。</p><p>玻璃板結構內有紫外線燈,還有空調、洗手液分配器和免費無線網(wǎng)絡。此外,還設有大型顯示屏,顯示公交車的預計到站時間和附近的交通情況。即使有這些預防措施,也建議乘客隨時戴上口罩,并保持至少一米的距離。每個公共汽車候車亭每天約有300至400人使用。</p></body></html>3.CSS選擇器運行程序,結果如下:3.CSS選擇器(2)類選擇器類選擇用使用"."(英文點號)進行標識,后面緊跟類名。.news_title{text-align:center;}3.CSS選擇器運行程序,結果如下:3.CSS選擇器(3)CSS的ID選擇器類選擇用使用"#"(英文點號)進行標識,后面緊跟ID名。#news_title{text-align:center;}3.CSS選擇器運行程序,結果如下:3.CSS選擇器(4)通用選擇器通用選擇器可以選擇頁面上的所有元素,并對它們應用樣式,用*來表示,下面通過一個例子加以說明。3.CSS選擇器運行程序,結果如下:任務一認識爬蟲及Python的安裝–任務實施

根據(jù)前面所學習的知識,我們這里設計一個網(wǎng)頁,來對中國偉大抗疫精神作一個展示,這里給出參考代碼。參考代碼請參考教材。任務一認識爬蟲及Python的安裝–任務拓展

有了CSS的基本知識以后,這里再簡單介紹一下JavaScript的基礎知識。JavaScript語言的引入主要有網(wǎng)頁中直接插入和外部引入兩種方式。(1)網(wǎng)頁中直接插入任務一認識爬蟲及Python的安裝–任務拓展

有了CSS的基本知識以后,這里再簡單介紹一下JavaScript的基礎知識。JavaScript語言的引入主要有網(wǎng)頁中直接插入和外部引入兩種方式。(1)網(wǎng)頁中直接插入任務一認識爬蟲及Python的安裝–任務拓展運行程序,結果如圖所示。任務一認識爬蟲及Python的安裝–任務拓展

(2)網(wǎng)頁中從外部引入JavaScript代碼

引用外部JavaScript代碼,可以是JavaScript代碼和HTML文件相分離、一個JavaScript文件可被多個HTML文件使用,同時使得JavaScript代碼的維護也更加方便。外部引用JavaScript文件,是使用script的src屬性,設置JavaScript文件的URL就可以了。<scriptsrc=“xxx.js”></script>任務一認識爬蟲及Python的安裝–任務拓展把上個例子中的JavaScript代碼抽成一個JavaScript文件,名字為demo.js,具體代碼如下:

varnum=0;functionfun(id){vars=document.getElementById(id).value;num=num+1;alert(s+"我被點擊了"+num+"次");}任務一認識爬蟲及Python的安裝–任務拓展<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><scriptsrc="demo.js"></script>為button綁定點擊事件:<divclass="box1"><inputtype="button"onclick="fun(this.id)"id="a"class="btn1"value="統(tǒng)計點擊次數(shù),請點我"></div></body>任務一認識爬蟲及Python的安裝–任務拓展<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><scriptsrc="demo.js"></script>為button綁定點擊事件:<divclass="box1"><inputtype="button"onclick="fun(this.id)"id="a"class="btn1"value="統(tǒng)計點擊次數(shù),請點我"></div></body>任務一認識爬蟲及Python的安裝–任務拓展運行程序,結果如下:任務二使用正則表達式提取指定的內容--任務演示本任務是給定了一個字符文本,該文本由若干英文單詞組成,每個英文單詞由空格進行了分割,請使用正則表達式將所有的單詞給提取出來,如圖所示。任務二將請求到的網(wǎng)頁保存到本地–知識準備正則表達式的使用正則表達式的基本語法1正則表達式的基本語法Python語言通過標準庫中的re模塊支持正則表達式Re模塊提供了一些根據(jù)正則表達式進行查找、替換、分割字符串的函數(shù),這些函數(shù)使用一個正則表達式作為第一個參數(shù)。Re模塊常用的函數(shù)如表所示。函數(shù)描述match(pattern,string,flags=0)根據(jù)pattern從string的頭部開始匹配字符串,只返回第1次匹配成功的對象;否則,返回Nonefindall(pattern,string,flags=0)根據(jù)pattern在string中匹配字符串。如果匹配成功,返回包含結果的列表;否則,返回空列表。當pattern中有分組時,返回包含多個元組的列表,每個元組對應1個分組。Falgs表示規(guī)則選項,規(guī)則選項用于輔助匹配。sub(pattern,repl,string,count=0)根據(jù)指定的正則表達式,替換源字符中的子串。Pattern是一個正則表達式,repl是用于替換的字符串,string是源字符串。如果count等于0,則返回sring中匹配的的所有結果;如果count大于0,則返回前count個匹配結果。subn(pattern,repl,string,count=0)作用和sub()相同,返回一個二元的元組。第1個元素是替換結果,第2個元素是替換的次數(shù)。search(pattern.flags=0)根據(jù)pattern在string中匹配字符串,只返回第一次匹配成功的對象。如果匹配失敗,返回None。complie(pattern,flags=0)編譯正則式pattern,返回1個pattern的對象。split(pattern,string,maxplit=0)根據(jù)pattern分隔string,maxplit表示最大的分隔數(shù)。escape(pattern)匹配字符串中的特殊字符,如*、+、?等1正則表達式的基本語法(1)match()方法re.match()嘗試從字符串的起始位置開始匹配一個模式,如果不是起始位置匹配成功的話,就返回None,否則返回一個對象,函數(shù)原型為:re.match(pattern,string,flag=0)函數(shù)的參數(shù)說明如下表所示:參數(shù)描述pattern匹配的正則表達式string要匹配的字符串flags標志位,用于控制正則表達式的匹配方式,如:是否區(qū)分大小寫,多行匹配等。也可以理解成修飾符,具體修飾符參閱表2.6所示。1正則表達式的基本語法(1)match()方法

正則表達式在使用中還用到修飾符,修飾符也叫標記,標記用于指定額外的匹配策略。標記不寫在正則表達式里,標記位于表達式之外,常用的正則表達式修飾符如表所示。修飾符描述re.I使匹配對大小寫不敏感re.L做本地化識別匹配re.M多行匹配,影響^和$re.S使.匹配包括換行在內的所有字符re.U根據(jù)Unicode字符集解析字符。這個標志影響\w,\W,\b,\B.re.X該標志通過給予你更靈活的格式以便你將正則表達式寫得更易于理解。1正則表達式的基本語法對match()函數(shù)的使用,舉例如下。01importre02str1=""03str2="www"04str3="com"05print(re.match(str2,str1,re.I))06print(re.match(str3,str1))運行程序,結果如圖:1正則表達式的基本語法(2)search()方法search掃描整個字符串并返回第一個成功的匹配,如果匹配失敗,則返回None,該方法的原型為:re.search(pattern,string,flags=0)pattern參數(shù)表示正則中的模式字符串;string參數(shù)表示要被查找替換的原始字符串;flags參數(shù)表示標志位,用于控制正則表達式的匹配方式。1正則表達式的基本語法(2)search()方法看一個例子:01importre02str1=""03str2="www"04str3="com"05str4="baidu"06print(re.search(str2,str1,re.I))07print(re.search(str3,str1))08print(re.search(str4,str1))運行程序,結果如圖。1正則表達式的基本語法(3)findall()方法findall方法與search方法比較類似,findall方法可以遍歷匹配,可以獲取字符串中所有匹配的字符串,將找到的結果返回到一個列表中,如果找不到,返回的是一個空列表,該函數(shù)的原型為:findall(pattern,string,flags=0)pattern參數(shù)表示正則中的模式字符串,就是正則表達式;string參數(shù)表示要被查找替換的原始字符串;flags參數(shù)表示標志位,用于控制正則表達式的匹配方式。注意:findall()函數(shù)是逐行匹配的。返回string中所有與pattern相匹配的全部字串,返回形式為列表。1正則表達式的基本語法看一個例子: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))運行程序,結果如下:1正則表達式的基本語法(4)sub()函數(shù)Python的re模塊提供了re.sub用于替換字符串中的匹配項,該函數(shù)將匹配上的字符串替換成指定的字符串,返回新的字符串,該函數(shù)的原型為:sub(pattern,repl,string,count=0,flags=0)參數(shù)說明:pattern:正則表達式。repl:替換的字符串,也可以是一個函數(shù)。string:要被查找替換的原始字符串。count:模式匹配后替換的最大次數(shù),默認0表示替換所有的匹配。flags:編譯時用的匹配模式,數(shù)字形式。注意:sub()函數(shù)的前三個參數(shù)為必填參數(shù),后兩個參數(shù)為可選參數(shù)。1正則表達式的基本語法舉例如下:01importre02phone="400-889-9315#這是美的售后客服電話"03#刪除注釋04num=re.sub(r'#.*$',"",phone)05print("美的客服電話為:",num)06#將非數(shù)字的‘-’去掉07num=re.sub(r'\D',"",phone)08print("美的客服電話為:",num)1正則表達式的基本語法舉例如下: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前綴,目的是禁用轉義符“\”的功能。運行程序,結果如圖所示。1正則表達式的基本語法(5)compile()函數(shù)

在Pytohn使用正則表達式時,re模塊內部會做兩件事情:第一,是對正則表達式進行編譯,如果此時正則表達式不合法,就會報錯;第二,用編譯好的正則表達式去匹配字符串。如果一個正則表達式使用的頻率很高,那么,我們就有必要對該正則表達式先確保編譯

溫馨提示

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

評論

0/150

提交評論