版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
7.1
網(wǎng)絡(luò)爬蟲(chóng)工作的基本原理7.2
網(wǎng)頁(yè)內(nèi)容獲取-requests庫(kù)概述7.3網(wǎng)頁(yè)內(nèi)容解析-BeautifulSoup庫(kù)7.6實(shí)戰(zhàn):大數(shù)據(jù)論文文章標(biāo)題采集習(xí)題7.5實(shí)戰(zhàn):熱門(mén)電影搜索of5617.7實(shí)戰(zhàn):全國(guó)空氣質(zhì)量第七章網(wǎng)絡(luò)爬蟲(chóng)7.4
正則表達(dá)式7.1網(wǎng)絡(luò)爬蟲(chóng)工作的基本原理7.2網(wǎng)頁(yè)內(nèi)容獲取-requ第七章網(wǎng)絡(luò)爬蟲(chóng)of3127.1.1網(wǎng)頁(yè)的概念7.1類的方法1、URL的含義URL(UniformResourceLocator,URL)稱為統(tǒng)一資源定位符,也稱為網(wǎng)址?;ヂ?lián)網(wǎng)上的每個(gè)頁(yè)面,都對(duì)應(yīng)一個(gè)URL。如:瀏覽上海市空氣質(zhì)量和pm2.5指標(biāo)的網(wǎng)址為/air/shanghai.html。URL主要包含四個(gè)部分:協(xié)議部分,如上海市空氣質(zhì)量網(wǎng)址的協(xié)議為“http:”,表示超文本傳輸協(xié)議;網(wǎng)站名部分,如上海市空氣質(zhì)量網(wǎng)址的網(wǎng)站名部分為,表示該網(wǎng)頁(yè)所在的主機(jī)位置;端口部分,跟在域名后面的是端口,域名和端口之間使用“:”作為分隔符,端口不是一個(gè)URL必須的部分,如果采用默認(rèn)端口80,則可以省略端口部分;虛擬目錄和文件名部分,如上海市空氣質(zhì)量網(wǎng)址的虛擬目錄和文件名部分內(nèi)容為/air/shanghai.html,表示該網(wǎng)頁(yè)在這個(gè)主機(jī)上的具體路徑。第七章網(wǎng)絡(luò)爬蟲(chóng)of3127.1.1網(wǎng)頁(yè)的概念7.1類第七章網(wǎng)絡(luò)爬蟲(chóng)of3137.1.1網(wǎng)頁(yè)的概念7.1類的方法2、頁(yè)面的渲染用戶若想要瀏覽城市空氣質(zhì)量排名情況,必須輸入網(wǎng)址:/air。得到如圖7.1的結(jié)果,網(wǎng)頁(yè)的樣式,實(shí)際上是html源代碼經(jīng)過(guò)渲染后形成的。這個(gè)頁(yè)面實(shí)際上是用戶通過(guò)瀏覽器向DNS服務(wù)器提交/air后,找到web主機(jī)服務(wù)器,主機(jī)服務(wù)器經(jīng)過(guò)解析,將包含圖片、HTML、JS、CSS等文件返回到用戶瀏覽器,用戶瀏覽器將這些文件的代碼解析渲染,最終就是用戶看到的結(jié)果。整個(gè)這個(gè)過(guò)程稱為用戶的請(qǐng)求和響應(yīng),響應(yīng)給客戶的是html代碼。第七章網(wǎng)絡(luò)爬蟲(chóng)of3137.1.1網(wǎng)頁(yè)的概念7.1類第七章網(wǎng)絡(luò)爬蟲(chóng)of3147.1.1網(wǎng)頁(yè)的概念7.1類的方法3、網(wǎng)頁(yè)文件的格式網(wǎng)頁(yè)文件主要是由各種標(biāo)簽對(duì)構(gòu)成的一個(gè)純文本文件,如:<head>與</head>標(biāo)簽對(duì),<li>與</li>標(biāo)簽對(duì)等,不同的標(biāo)簽有不同的作用。如:li標(biāo)簽定義列表項(xiàng)目,span標(biāo)簽被用來(lái)組合文檔中的行內(nèi)元素。標(biāo)簽可以有屬性,可以有顯示的文本。下面以表格第一行樂(lè)山市對(duì)應(yīng)的第二列的html代碼(<spanclass="tdtd-2nd"><ahref="/air/leshan.html"target="_blank">樂(lè)山市</a></span>)為例進(jìn)行說(shuō)明:<spanclass="tdtd-2nd">與</span>:是一對(duì)標(biāo)簽,class="tdtd-2nd",說(shuō)明,span標(biāo)簽有一個(gè)class屬性,值為"tdtd-2nd",用于設(shè)置列的外觀。<ahref="/air/leshan.html"target="_blank">樂(lè)山市</a>,是span標(biāo)簽的內(nèi)嵌<a>標(biāo)簽,用于設(shè)置超鏈接的,超鏈接文本是“樂(lè)山市”,超鏈接網(wǎng)址是/air/leshan.html,是個(gè)相對(duì)路徑,絕對(duì)路徑是/air/leshan.html。第七章網(wǎng)絡(luò)爬蟲(chóng)of3147.1.1網(wǎng)頁(yè)的概念7.1類第七章網(wǎng)絡(luò)爬蟲(chóng)of3157.1.2網(wǎng)絡(luò)爬蟲(chóng)的工作流程7.1類的方法網(wǎng)絡(luò)爬蟲(chóng)實(shí)質(zhì)上是一個(gè)能自動(dòng)下載網(wǎng)頁(yè)的程序,它是搜索引擎中最核心的部分。通用網(wǎng)絡(luò)爬蟲(chóng)是從一個(gè)或若干個(gè)初始網(wǎng)頁(yè)上的URL開(kāi)始,讀取網(wǎng)頁(yè)的代碼并對(duì)頁(yè)面結(jié)構(gòu)進(jìn)行分析、過(guò)濾,并對(duì)感興趣的內(nèi)容建立索引,同時(shí)提取網(wǎng)頁(yè)上的其他感興趣的超鏈接地址,放入到待爬行隊(duì)列中,如此循環(huán),直到滿足系統(tǒng)的停止條件為止。在爬取網(wǎng)頁(yè)過(guò)程中,如何根據(jù)當(dāng)前網(wǎng)頁(yè)的超鏈接頁(yè)面,形成待爬行隊(duì)列呢?目前有基于IP地址搜索策略、廣度優(yōu)先策略、深度優(yōu)先策略和最佳優(yōu)先等,具體請(qǐng)看相關(guān)文檔。第七章網(wǎng)絡(luò)爬蟲(chóng)of3157.1.2網(wǎng)絡(luò)爬蟲(chóng)的工作流程7第七章網(wǎng)絡(luò)爬蟲(chóng)of3167.1.3Python與網(wǎng)頁(yè)爬蟲(chóng)7.1類的方法使用Python語(yǔ)言實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲(chóng)和信息提交是非常簡(jiǎn)單的事情,代碼行數(shù)很少,也無(wú)須知道網(wǎng)絡(luò)通信等方面知識(shí),非常適合非專業(yè)讀者使用。然而,肆意的爬取網(wǎng)絡(luò)數(shù)據(jù)并不是文明現(xiàn)象,通過(guò)程序自動(dòng)提交內(nèi)容爭(zhēng)取競(jìng)爭(zhēng)性資源也不公平。就像那些肆意的推銷電話一樣,他們無(wú)視接聽(tīng)者意愿,不僅令人討厭也有可能引發(fā)法律糾紛。在互聯(lián)網(wǎng)上爬取數(shù)據(jù),要遵從Robots排除協(xié)議(RobotsExclusionProtocol),它也被稱為爬蟲(chóng)協(xié)議,是網(wǎng)站管理者表達(dá)是否希望爬蟲(chóng)自動(dòng)獲取網(wǎng)絡(luò)信息意愿的方法。管理者可以在網(wǎng)站根目錄放置一個(gè)robots.txt文件,并在文件中列出哪些鏈接不允許爬蟲(chóng)爬取。一般搜索引擎的爬蟲(chóng)會(huì)首先捕獲這個(gè)文件,并根據(jù)文件要求爬取網(wǎng)站內(nèi)容。Robots排除協(xié)議重點(diǎn)約定不希望爬蟲(chóng)獲取的內(nèi)容,如果沒(méi)有該文件則表示網(wǎng)站內(nèi)容可以被爬蟲(chóng)獲得,然而,Robots協(xié)議不是命令和強(qiáng)制手段,只是國(guó)際互聯(lián)網(wǎng)的一種通用道德規(guī)范。絕大部分成熟的搜索引擎爬蟲(chóng)都會(huì)遵循這個(gè)協(xié)議,建議個(gè)人也能按照互聯(lián)網(wǎng)規(guī)范要求合理使用爬蟲(chóng)技術(shù)。第七章網(wǎng)絡(luò)爬蟲(chóng)of3167.1.3Python與網(wǎng)頁(yè)爬7.1
網(wǎng)絡(luò)爬蟲(chóng)工作的基本原理7.2
網(wǎng)頁(yè)內(nèi)容獲取-requests庫(kù)概述7.3網(wǎng)頁(yè)內(nèi)容解析-BeautifulSoup庫(kù)7.6實(shí)戰(zhàn):大數(shù)據(jù)論文文章標(biāo)題采集習(xí)題7.5實(shí)戰(zhàn):熱門(mén)電影搜索of5677.7實(shí)戰(zhàn):全國(guó)空氣質(zhì)量第七章網(wǎng)絡(luò)爬蟲(chóng)7.4
正則表達(dá)式7.1網(wǎng)絡(luò)爬蟲(chóng)工作的基本原理7.2網(wǎng)頁(yè)內(nèi)容獲取-requ第七章網(wǎng)絡(luò)爬蟲(chóng)of3187.2.1requests對(duì)象7.2網(wǎng)頁(yè)內(nèi)容獲取-requests庫(kù)概述http工作原理:HTTP是基于請(qǐng)求-響應(yīng)模式的,客戶端發(fā)出請(qǐng)求叫Request,服務(wù)器端的響應(yīng)叫Response。HTTP請(qǐng)求服務(wù)器端,常用的方式是GET和POST。通常,GET表示向指定的服務(wù)器請(qǐng)求數(shù)據(jù),POST表示向指定的服務(wù)器提交要被處理的數(shù)據(jù)。Requests請(qǐng)求的相關(guān)函數(shù):Get(url,timeout=n):對(duì)應(yīng)HTTP的get方法,獲取網(wǎng)頁(yè)內(nèi)容,timeout設(shè)定每次請(qǐng)求的超時(shí)時(shí)間,單位秒。該函數(shù)將網(wǎng)頁(yè)的內(nèi)容封裝成一個(gè)Response對(duì)象并返回。Post(url,data={‘key’:’value’}):對(duì)應(yīng)HTTP的post方式,其中字典用于傳遞客戶端數(shù)據(jù)。第七章網(wǎng)絡(luò)爬蟲(chóng)of3187.2.1requests對(duì)象第七章網(wǎng)絡(luò)爬蟲(chóng)of3197.2.2response對(duì)象7.2網(wǎng)頁(yè)內(nèi)容獲取-requests庫(kù)概述通過(guò)Response對(duì)象的屬性可以獲取網(wǎng)頁(yè)內(nèi)容。屬性:Status_code:http請(qǐng)求返回的狀態(tài),整數(shù),200表示連接成功,404表示失敗。在處理網(wǎng)頁(yè)數(shù)據(jù)前,要先判斷該狀態(tài)值。Text:頁(yè)面內(nèi)容,以字符串形式存儲(chǔ)在text中。Encoding:HTTP響應(yīng)內(nèi)容的編碼格式,通過(guò)此屬性可以更改返回頁(yè)面的編碼格式,便于處理中文。方法:Json():如果HTTP響應(yīng)頁(yè)面包含JSON格式數(shù)據(jù),該方法能夠在HTTP響應(yīng)內(nèi)容中解析存在的JSON數(shù)據(jù),這將帶來(lái)解析HTTP的便利。raise_for_status():方法能在非成功響應(yīng)后產(chǎn)生異常,即只要返?;氐恼?qǐng)求狀態(tài)status_code不是200,這個(gè)方法會(huì)產(chǎn)生一個(gè)異常,用于try…except語(yǔ)句。使用異常處理語(yǔ)句可以避免設(shè)置一堆復(fù)雜的if語(yǔ)句,只需要在收到響應(yīng)調(diào)用這個(gè)方法。第七章網(wǎng)絡(luò)爬蟲(chóng)of3197.2.2response對(duì)象第七章網(wǎng)絡(luò)爬蟲(chóng)of31107.2.2response對(duì)象7.2網(wǎng)頁(yè)內(nèi)容獲取-requests庫(kù)概述當(dāng)遇到網(wǎng)絡(luò)問(wèn)題時(shí)阿,requests會(huì)產(chǎn)生幾種常用異常。例如:DNS查詢失敗、拒絕連接等,requests會(huì)拋出ConnectionError異常。遇到無(wú)效HTTP響應(yīng)時(shí),requests則會(huì)拋出HTTPError異常。若請(qǐng)求url超時(shí),則拋出Timeout異常。請(qǐng)求超過(guò)了設(shè)定的最大重定向次數(shù),則會(huì)拋出一個(gè)TooManyRedirects異常。所以在使用requests時(shí),通常需要將此語(yǔ)句放在try快中進(jìn)行處理。第七章網(wǎng)絡(luò)爬蟲(chóng)of31107.2.2response對(duì)第七章網(wǎng)絡(luò)爬蟲(chóng)of31117.2.2response對(duì)象7.2網(wǎng)頁(yè)內(nèi)容獲取-requests庫(kù)概述【案例7-1】爬取天堂圖片網(wǎng)中小黃人圖片網(wǎng)頁(yè)的內(nèi)容importrequestsdefgethtmltext(url):try:r=requests.get(url,timeout=30)r.raise_for_status()returnr.textexcept:return"“url="/tupian/xiaohuangren_t21343/"print(gethtmltext(url))第七章網(wǎng)絡(luò)爬蟲(chóng)of31117.2.2response對(duì)7.1
網(wǎng)絡(luò)爬蟲(chóng)工作的基本原理7.2
網(wǎng)頁(yè)內(nèi)容獲取-requests庫(kù)概述7.3網(wǎng)頁(yè)內(nèi)容解析-BeautifulSoup庫(kù)7.6實(shí)戰(zhàn):大數(shù)據(jù)論文文章標(biāo)題采集習(xí)題7.5實(shí)戰(zhàn):熱門(mén)電影搜索of56127.7實(shí)戰(zhàn):全國(guó)空氣質(zhì)量第七章網(wǎng)絡(luò)爬蟲(chóng)7.4
正則表達(dá)式7.1網(wǎng)絡(luò)爬蟲(chóng)工作的基本原理7.2網(wǎng)頁(yè)內(nèi)容獲取-requ第七章網(wǎng)絡(luò)爬蟲(chóng)of31137.3.1BeautifulSoup庫(kù)概述7.3網(wǎng)頁(yè)內(nèi)容解析-BeautifulSoup庫(kù)beautifulsoup4庫(kù),也稱為BeautifulSoup庫(kù)或bs4庫(kù),用于解析和處理HTML和XML。它的最大優(yōu)點(diǎn)是能根據(jù)HTML和XML語(yǔ)法建立解析樹(shù),進(jìn)而高效解析其中的內(nèi)容。類似于c#中的或HTTP中的文檔類HTML建立的Web頁(yè)面一般非常復(fù)雜,除了有用的內(nèi)容信息外,還包括大量用于頁(yè)面格式的元素,直接解析一個(gè)Web網(wǎng)頁(yè)需要深入了解HTML語(yǔ)法,而且比較復(fù)雜。beautifulsoup4庫(kù)將專業(yè)的Web頁(yè)面格式解析部分封裝成函數(shù),提供了若干有用且便捷的處理函數(shù)。有關(guān)beautifulsoup4庫(kù)的更多介紹請(qǐng)參考這個(gè)第三方庫(kù)主頁(yè):/software/BeautifulSoup/bs4/第七章網(wǎng)絡(luò)爬蟲(chóng)of31137.3.1Beautiful第七章網(wǎng)絡(luò)爬蟲(chóng)of31147.3.1BeautifulSoup庫(kù)概述7.3網(wǎng)頁(yè)內(nèi)容解析-BeautifulSoup庫(kù)例如:有一個(gè)描述學(xué)生選課的XML代碼,表示20004146學(xué)生選修了2門(mén)課,20004176選修了1門(mén)課。<scs> <sc> <sno>20004146</sno> <courses> <course> <cno>1111</cno> <grade>67</grade> </course> <course> <cno>2222</cno> <grade>78</grade> </course> </courses> </sc> <sc> <sno>20004176</sno> <courses> <course> <cno>2222</cno> <grade>70</grade> </course> </courses></sc></scs>第七章網(wǎng)絡(luò)爬蟲(chóng)of31147.3.1Beautiful第七章網(wǎng)絡(luò)爬蟲(chóng)of31157.3.1BeautifulSoup庫(kù)概述7.3網(wǎng)頁(yè)內(nèi)容解析-BeautifulSoup庫(kù)它對(duì)應(yīng)的BeautifulSoup對(duì)象的邏輯結(jié)構(gòu)可以理解成這樣一棵樹(shù)。樹(shù)中一般有4類節(jié)點(diǎn):Tag,NavigableString,BeautifulSoup,Comment,但很多時(shí)候,可以把節(jié)點(diǎn)當(dāng)作Tag對(duì)象。第七章網(wǎng)絡(luò)爬蟲(chóng)of31157.3.1Beautiful第七章網(wǎng)絡(luò)爬蟲(chóng)of31167.3.2beautifulsoup4庫(kù)常用方法和tag節(jié)點(diǎn)7.3網(wǎng)頁(yè)內(nèi)容解析-BeautifulSoup庫(kù)beautifulsoup4提供Xpath操作方式解析數(shù)據(jù):1.即按照解析樹(shù)的邏輯結(jié)構(gòu),解析數(shù)據(jù)。2.解析樹(shù)上的常用節(jié)點(diǎn)是tag節(jié)點(diǎn)。3.常用方法:BeautifulSoup(html,”html.parser”):該方法需要兩個(gè)參數(shù),第一參數(shù)是需要提取數(shù)據(jù)的html文檔內(nèi)容或XML,第二個(gè)參數(shù)是指定解析器。該方法的目的是生成一顆解析樹(shù)。find_all(name,attrs,recursive,string,limit):方法可以根據(jù)標(biāo)簽名字、標(biāo)簽屬性和內(nèi)容檢索并返回標(biāo)簽列表。name為標(biāo)簽名;attrs為標(biāo)簽的屬性名和值,采用JSON表示;recursive,設(shè)置查找層次;string標(biāo)簽的字符串內(nèi)容;limit返回匹配結(jié)果的個(gè)數(shù)。利用string參數(shù)可以實(shí)現(xiàn)模糊查找。find(name,attrs,recursive,string):返回找到的第一個(gè)結(jié)果,find_all()函數(shù)由于可能返回更多結(jié)果,所以采用列表形式存儲(chǔ)返回結(jié)果;find()函數(shù)返回字符串形式,找不到,返回None。第七章網(wǎng)絡(luò)爬蟲(chóng)of31167.3.2beautiful第七章網(wǎng)絡(luò)爬蟲(chóng)of31177.3.2beautifulsoup4庫(kù)常用方法和tag節(jié)點(diǎn)7.3網(wǎng)頁(yè)內(nèi)容解析-BeautifulSoup庫(kù)例如:根據(jù)選課學(xué)號(hào)和門(mén)數(shù)標(biāo)簽字符串,輸出選課的學(xué)號(hào)。>>>soup=BeautifulSoup('<scs><sc><sno>20004146</sno><number>2</number></sc><sc><sno>20181012</sno><number>5</number></sc></scs>')>>>tag=soup.scs>>>print(tag.string)
>>>print(tag.contents[0].name)
>>>print(tag.contents[0].sno.string)
>>>soup.find_all('sno')第七章網(wǎng)絡(luò)爬蟲(chóng)of31177.3.2beautiful7.1
網(wǎng)絡(luò)爬蟲(chóng)工作的基本原理7.2
網(wǎng)頁(yè)內(nèi)容獲取-requests庫(kù)概述7.3網(wǎng)頁(yè)內(nèi)容解析-BeautifulSoup庫(kù)7.6實(shí)戰(zhàn):大數(shù)據(jù)論文文章標(biāo)題采集習(xí)題7.5實(shí)戰(zhàn):熱門(mén)電影搜索of56187.7實(shí)戰(zhàn):全國(guó)空氣質(zhì)量第七章網(wǎng)絡(luò)爬蟲(chóng)7.4
正則表達(dá)式7.1網(wǎng)絡(luò)爬蟲(chóng)工作的基本原理7.2網(wǎng)頁(yè)內(nèi)容獲取-requ第七章網(wǎng)絡(luò)爬蟲(chóng)of31197.4.1正則表達(dá)式概念7.4正則表達(dá)式從網(wǎng)頁(yè)中解析需要的數(shù)據(jù),除了采用beautifulsoup4庫(kù)的方法,也可以根據(jù)被查找字符串的特征,采用正則表達(dá)式的方法,得到符合條件的子字符串。正則表達(dá)式庫(kù)是python的標(biāo)準(zhǔn)庫(kù),使用時(shí):importre,即可。正則表達(dá)式(RegularExpression):稱為規(guī)則表達(dá)式,又稱為規(guī)則字符串,它通過(guò)一個(gè)字符序列來(lái)表示滿足某種邏輯條件的字符串,主要用于字符串模式匹配或字符串匹配。一個(gè)正則表達(dá)式由字母、數(shù)字和一些特殊符號(hào)組成,特殊符號(hào)也稱為元字符,在正則表達(dá)式中具有特殊的含義,可以用來(lái)匹配一個(gè)或若干個(gè)滿足某種條件的字符,這些元字符才是構(gòu)成正則表達(dá)式的關(guān)鍵要素。正則表達(dá)式通過(guò)元字符的各種運(yùn)用,可以表示豐富的匹配字符串。對(duì)程序員來(lái)說(shuō),如果需要從源字符串中得到需要的子字符串(也稱結(jié)果字符串),首先要分析子字符串在源字符串中的規(guī)律,根據(jù)規(guī)律去描述正則表達(dá)式。第七章網(wǎng)絡(luò)爬蟲(chóng)of31197.4.1正則表達(dá)式概念7.第七章網(wǎng)絡(luò)爬蟲(chóng)of31207.4.2正則表達(dá)式元字符介紹7.4正則表達(dá)式1、字符限定元字符字符作用[m1m2……mn]表示一個(gè)字符集合(m1、m2……mn等均為單個(gè)字符),表示可以與集合中的任意一個(gè)字符匹配[^m1m2……mn]表示可以與集合之外的任意一個(gè)字符匹配[m-n]表示一個(gè)字符范圍集合,表示可以與字符m到n之間的所有字符匹配[^m-n]表示可以與集合范圍之外的任意一個(gè)字符匹配\d用來(lái)匹配一個(gè)數(shù)字字符,相當(dāng)于“[0-9]”\D用來(lái)匹配一個(gè)非數(shù)字字符,相當(dāng)于“[^0-9]”\w用來(lái)匹配一個(gè)單詞字符(包括數(shù)字、大小寫(xiě)字母和下畫(huà)線),相當(dāng)于“[A-Za-z0-9_]”\W用來(lái)匹配任意一個(gè)非單詞字符,相當(dāng)于“[^A-Za-z0-9_]”\s用來(lái)匹配一個(gè)不可見(jiàn)字符(包括空格、制表符、換行符等)\S用來(lái)匹配一個(gè)可見(jiàn)字符.用來(lái)匹配除了換行符外的任意一個(gè)字符第七章網(wǎng)絡(luò)爬蟲(chóng)of31207.4.2正則表達(dá)式元字符介第七章網(wǎng)絡(luò)爬蟲(chóng)of31217.4.2正則表達(dá)式元字符介紹7.4正則表達(dá)式【簡(jiǎn)單案例】>>>importre>>>str='''<spanclass="tdtd-2nd"><ahref="/air/nanchang.html"target="_blank">南昌市</a></span><spanclass="tdtd-4rd">17</span><spanclass="tdtd-4rd"><emclass="f1"style="color:#79b800">優(yōu)</em></span>'''則:>>>re.findall(r"\d\d",str)['17','79','80']#匹配出str中只含2個(gè)數(shù)字的字符串>>>re.findall(r"[6789]\d",str)#匹配出str中只含2個(gè)數(shù)字的字符串,且第一個(gè)數(shù)字符號(hào)可以是6或7或8或9['79','80']>>>re.findall(r"td.",str)#匹配出str中以td開(kāi)頭,第三個(gè)字符不是換行符的連續(xù)三個(gè)字符['td','td-','td','td-','td','td-']>>>s='aaa,bbbccchigh'#定義字符串>>>re.findall(r'[a-zA-Z]+',s)['aaa','bbb','ccc','high']#實(shí)現(xiàn)了分詞效果第七章網(wǎng)絡(luò)爬蟲(chóng)of31217.4.2正則表達(dá)式元字符介第七章網(wǎng)絡(luò)爬蟲(chóng)of31227.4.2正則表達(dá)式元字符介紹7.4正則表達(dá)式2、數(shù)量限定元字符字符作用*用來(lái)匹配前面的字符任意多次(0到多次)+用來(lái)匹配前面的字符一次或多次?用來(lái)匹配前面的字符零次或一次{n}用來(lái)匹配前面的字符n次,n是一個(gè)非負(fù)整數(shù){n,}用來(lái)匹配前面的字符至少n次,n是一個(gè)非負(fù)整數(shù){n,m}用來(lái)匹配前面的字符串至少n次,至多m次,m和n為非負(fù)整數(shù)且n≤m*?,+?,??,{}??跟在前面所述的任何一個(gè)數(shù)量限定符后面時(shí),表示匹配模式是非貪婪的,即盡可能少地匹配字符串。而默認(rèn)情況下,匹配是貪婪的,即盡可能多地匹配所搜索的字符串。請(qǐng)將案例7-2中注釋掉的正則表達(dá)式改為list1=re.findall(r"\"_blank\">.{1,}?</",str1),看運(yùn)行結(jié)果第七章網(wǎng)絡(luò)爬蟲(chóng)of31227.4.2正則表達(dá)式元字符介第七章網(wǎng)絡(luò)爬蟲(chóng)of31237.4.2正則表達(dá)式元字符介紹7.4正則表達(dá)式【簡(jiǎn)單案例】>>>importre>>>str='''<spanclass="tdtd-2nd"><ahref="/air/nanchang.html"target="_blank">南昌市</a></span><spanclass="tdtd-4rd">17</span><spanclass="tdtd-4rd"><emclass="f1"style="color:#79b800">優(yōu)</em></span>'''則:#re.findall(r"\d{2,}",str)等價(jià)于re.findall(r"\d\d",str),re.findall(r"\d\d\d…",str)>>>re.findall(r"\d{2,}",str)['17','79','800']#匹配出str中至少含2個(gè)數(shù)字的字符串>>>re.findall(r"\d{1,}b\d{1,}",str)['79b800']#匹配出str中數(shù)字串中包含一個(gè)字母b的字符串>>>s="fdfd<a>aaaaa</a>dfefe<b>bbbb</b>">>>regex='<.*?>.*?<\/.*?>'>>>re.findall(regex,s)['<a>aaaaa</a>','<b>bbbb</b>']#從字符串中分離出標(biāo)簽對(duì)第七章網(wǎng)絡(luò)爬蟲(chóng)of31237.4.2正則表達(dá)式元字符介第七章網(wǎng)絡(luò)爬蟲(chóng)of31247.4.2正則表達(dá)式元字符介紹7.4正則表達(dá)式3.分組元字符字符作用(正則表達(dá)式)將括號(hào)之間的正則表達(dá)式稱為一個(gè)子組(group),一個(gè)子組對(duì)應(yīng)一個(gè)匹配字符串,子組的匹配內(nèi)容會(huì)返回(?P=<name>…)也用來(lái)定義一個(gè)組。這種方式定義的組可以被組名索引進(jìn)行訪問(wèn),訪問(wèn)方式為“(?P=name)”。|用來(lái)將兩個(gè)匹配條件進(jìn)行邏輯“或”運(yùn)算
第七章網(wǎng)絡(luò)爬蟲(chóng)of31247.4.2正則表達(dá)式元字符介第七章網(wǎng)絡(luò)爬蟲(chóng)of31257.4.2正則表達(dá)式元字符介紹7.4正則表達(dá)式【簡(jiǎn)單案例】>>>importre>>>str="SatMay2822:18:591994::gsbxh@::770134739-5-5FriDec119:33:071995::odzfm@::817817587-5-11"則:>>>regex='::([a-z]{2,13})@([a-z]{2,13})\.(com|edu|net|org|gov)'>>>re.findall(regex,str)#只輸出分組內(nèi)的匹配字符串[('gsbxh','wtkxw','gov'),('odzfm','sqkqgefpjbd','gov')]第七章網(wǎng)絡(luò)爬蟲(chóng)of31257.4.2正則表達(dá)式元字符介第七章網(wǎng)絡(luò)爬蟲(chóng)of31267.4.2正則表達(dá)式元字符介紹7.4正則表達(dá)式4、字符定位元字符字符作用^用來(lái)匹配輸入字符串是否以。。。。開(kāi)始。$用來(lái)匹配輸入字符串是否以。。。。結(jié)束。\b用來(lái)匹配一個(gè)單詞邊界(即單詞和空格之間的位置)。事實(shí)上,所謂單詞邊界不是一個(gè)字符,而只是一個(gè)位置。\B用來(lái)匹配一個(gè)非單詞邊界。第七章網(wǎng)絡(luò)爬蟲(chóng)of31267.4.2正則表達(dá)式元字符介第七章網(wǎng)絡(luò)爬蟲(chóng)of31277.4.2正則表達(dá)式元字符介紹7.4正則表達(dá)式【簡(jiǎn)單案例】>>>importre>>>str='''<spanclass="tdtd-2nd"><ahref="/air/nanchang.html"target="_blank">南昌市</a></span><spanclass="tdtd-4rd">17</span><spanclass="tdtd-4rd"><emclass="f1"style="color:#79b800">優(yōu)</em></span>'''則:>>>re.findall(r"td",str)['td','td','td','td','td','td']>>>re.findall(r"^td",str)#判斷str是以td開(kāi)頭,進(jìn)行匹配[]第七章網(wǎng)絡(luò)爬蟲(chóng)of31277.4.2正則表達(dá)式元字符介第七章網(wǎng)絡(luò)爬蟲(chóng)of31287.4.2正則表達(dá)式元字符介紹7.4正則表達(dá)式5.轉(zhuǎn)義元字符字符作用\元字符在符號(hào)在正則表達(dá)式中與特殊的含義,如果想要匹配元字符,可以采用轉(zhuǎn)義的方式。如:\\,\*,\.等第七章網(wǎng)絡(luò)爬蟲(chóng)of31287.4.2正則表達(dá)式元字符介第七章網(wǎng)絡(luò)爬蟲(chóng)of31297.4.2正則表達(dá)式元字符介紹7.4正則表達(dá)式【簡(jiǎn)單案例】>>>importre>>>str='''<spanclass="tdtd-2nd"><ahref="/air/nanchang.html"target="_blank">南昌市</a></span><spanclass="tdtd-4rd">17</span><spanclass="tdtd-4rd"><emclass="f1"style="color:#79b800">優(yōu)</em></span>'''則:>>>re.findall(r"\".*?\"",str)#匹配出str中所有""之間的字符串['"tdtd-2nd"','"/air/nanchang.html"','"_blank"','"tdtd-4rd"','"tdtd-4rd"','"f1"','"color:#79b800"']>>>re.findall(r'["].*?["]',str)['"tdtd-2nd"','"/air/nanchang.html"','"_blank"','"tdtd-4rd"','"tdtd-4rd"','"f1"','"color:#79b800"']#通過(guò)結(jié)果可以看出,如果把元字符放在[]中,就不需要采用轉(zhuǎn)義方式。第七章網(wǎng)絡(luò)爬蟲(chóng)of31297.4.2正則表達(dá)式元字符介第七章網(wǎng)絡(luò)爬蟲(chóng)of31307.4.3正則表達(dá)式的常用函數(shù)介紹7.4正則表達(dá)式pile(pattern,flags=0)匹配任何可選的標(biāo)記來(lái)編譯正則表達(dá)式的模式,然后返回一個(gè)正則表達(dá)式對(duì)象re.search(pattern,string,flags=0)使用可選標(biāo)記搜索字符串中第一次匹配正則表達(dá)式的對(duì)象。如果匹配成功,則返回匹配對(duì)象,否則返回Nonere.match(pattern,string,flags=0)
使用帶有可選標(biāo)記的正則表達(dá)式的模式來(lái)匹配字符串,匹配是從字符串的第一個(gè)字符開(kāi)始進(jìn)行。如果匹配成功,返回匹配對(duì)象,否則返回Nonere.findall(pattern,string,flags=0)
查找字符串中所有匹配的子字符串,并返回一個(gè)字符串匹配列表匹配對(duì)象.group(num=0)返回整個(gè)匹配對(duì)象,或者編號(hào)為num的特定子組第七章網(wǎng)絡(luò)爬蟲(chóng)of31307.4.3正則表達(dá)式的常用函第七章網(wǎng)絡(luò)爬蟲(chóng)of31317.4.3正則表達(dá)式的常用函數(shù)介紹7.4正則表達(dá)式例如:下面的正則表達(dá)式定義從s中匹配出ip地址的內(nèi)容。>>>importre>>>s="ipddresselse">>>m1=re.search(r"(([01]{0,1}\d{0,1}\d|25[0-5])\.){3}([01]{0,1}\d{0,1}\d|2[0-4]\d|25[0-5])",s)>>>print(m1.group())#輸出>>>str='''<spanclass="tdtd-2nd"><ahref="/air/nanchang.html"target="_blank">南昌市</a></span><spanclass="tdtd-4rd">17</span><spanclass="tdtd-4rd"><emclass="f1"style="color:#79b800">優(yōu)</em></span><spanclass="tdtd-2nd"><ahref="/air/nanchang.html"target="_blank">武漢市</a></span><spanclass="tdtd-4rd">17</span><spanclass="tdtd-4rd"><emclass="f1"style="color:#79b800">優(yōu)</em></span>'''>>>re.findall(r"\"_blank\">(.{1,}?)</a>",str)#匹配出所有的城市名['南昌市','武漢市']第七章網(wǎng)絡(luò)爬蟲(chóng)of31317.4.3正則表達(dá)式的常用函第七章網(wǎng)絡(luò)爬蟲(chóng)of31327.4.3正則表達(dá)式的常用函數(shù)介紹7.4正則表達(dá)式【案例】爬取解析并保存天堂圖片網(wǎng)的小黃人圖片importrequestsimportre#爬取天堂圖片網(wǎng)小黃人圖片網(wǎng)頁(yè)源碼url='/tupian/xiaohuangren_t21343/'data=requests.get(url).text#小黃人圖片的超鏈接格式#<imgsrc="/img/tupian/t/201411/01/xiaohuangren-009.jpg"width="135"height="135"alt="卑鄙的我小黃人圖片">regex=r'<imgsrc=\"(.*?.jpg)\"'#取出小黃人圖片網(wǎng)址pa=pile(regex)#轉(zhuǎn)為pattern對(duì)象ma=re.findall(pa,data)print('本次爬取共獲取圖片'+str(len(ma))+'張')#列表長(zhǎng)度,即找到圖片個(gè)數(shù)i=0forimgurlinma:i+=1print('正在爬取'+imgurl)imgdata=requests.get(imgurl).contentwithopen(str(i)+'.jpg','wb')asf:f.write(imgdata)print('爬取完畢!')第七章網(wǎng)絡(luò)爬蟲(chóng)of31327.4.3正則表達(dá)式的常用函第七章網(wǎng)絡(luò)爬蟲(chóng)of31337.4.3正則表達(dá)式的常用函數(shù)介紹7.4正則表達(dá)式輸出結(jié)果:第七章網(wǎng)絡(luò)爬蟲(chóng)of31337.4.3正則表達(dá)式的常用函7.1
網(wǎng)絡(luò)爬蟲(chóng)工作的基本原理7.2
網(wǎng)頁(yè)內(nèi)容獲取-requests庫(kù)概述7.3網(wǎng)頁(yè)內(nèi)容解析-BeautifulSoup庫(kù)7.6實(shí)戰(zhàn):大數(shù)據(jù)論文文章標(biāo)題采集習(xí)題7.5實(shí)戰(zhàn):熱門(mén)電影搜索of56347.7實(shí)戰(zhàn):全國(guó)空氣質(zhì)量第七章網(wǎng)絡(luò)爬蟲(chóng)7.4
正則表達(dá)式7.1網(wǎng)絡(luò)爬蟲(chóng)工作的基本原理7.2網(wǎng)頁(yè)內(nèi)容獲取-requ第七章網(wǎng)絡(luò)爬蟲(chóng)of31357.5實(shí)戰(zhàn):熱門(mén)電影搜索【案例】搜索2345電影網(wǎng)站上,排名前50的電影排行榜,列出電影名稱、上映時(shí)間、演員、簡(jiǎn)介,并保存電影海報(bào)圖片到文件中importrequestsfrombs4importBeautifulSoupdefgetHtml(url):try:r=requests.get(url,timeout=30)r.raise_for_status()r.encoding='gbk'returnr.textexcept:return''第七章網(wǎng)絡(luò)爬蟲(chóng)of31357.5實(shí)戰(zhàn):熱門(mén)電影搜索【案例第七章網(wǎng)絡(luò)爬蟲(chóng)of31367.5實(shí)戰(zhàn):熱門(mén)電影搜索defsaveInfo(html):soup=BeautifulSoup(html,'html.parser')move_ls=soup.find('ul',class_='picListclearfix')movies=move_ls.find_all('li')fortopinmovies:img_url=top.find('img')['src']#查找所有的圖片鏈接name=top.find('span',class_='sTit').get_text()#得到電影名稱try:time=top.find('span',class_='sIntro').get_text()except:time='暫時(shí)無(wú)上映時(shí)間信息'try:actors=top.find('p',class_='pActor')actor=''foractinactors.contents:actor=actor+act.string+''except:actor='暫時(shí)無(wú)演員姓名'第七章網(wǎng)絡(luò)爬蟲(chóng)of31367.5實(shí)戰(zhàn):熱門(mén)電影搜索def第七章網(wǎng)絡(luò)爬蟲(chóng)of31377.5實(shí)戰(zhàn):熱門(mén)電影搜索iftop.find('p',class_='pTxtpIntroHide'):intro=top.find('p',class_='pTxtpIntroHide').get_text()else:intro=top.find('p',class_='pTxtpIntroShow').get_text()print('影片名:{}\t{}\n{}\n{}\n\n'.format(name,time,actor,intro))#下載圖片withopen('D:/movie/'+name+'.jpg','wb+')asf:img_url="http:"+img_urlimgdata=requests.get(img_url).contentf.write(imgdata)defmain():url='/top/'html=getHtml(url)saveInfo(html)
main()第七章網(wǎng)絡(luò)爬蟲(chóng)of31377.5實(shí)戰(zhàn):熱門(mén)電影搜索if第七章網(wǎng)絡(luò)爬蟲(chóng)of31387.5實(shí)戰(zhàn):熱門(mén)電影搜索運(yùn)行結(jié)果:第七章網(wǎng)絡(luò)爬蟲(chóng)of31387.5實(shí)戰(zhàn):熱門(mén)電影搜索運(yùn)行結(jié)7.1
網(wǎng)絡(luò)爬蟲(chóng)工作的基本原理7.2
網(wǎng)頁(yè)內(nèi)容獲取-requests庫(kù)概述7.3網(wǎng)頁(yè)內(nèi)容解析-BeautifulSoup庫(kù)7.6實(shí)戰(zhàn):大數(shù)據(jù)論文文章標(biāo)題采集習(xí)題7.5實(shí)戰(zhàn):熱門(mén)電影搜索of56397.7實(shí)戰(zhàn):全國(guó)空氣質(zhì)量第七章網(wǎng)絡(luò)爬蟲(chóng)7.4
正則表達(dá)式7.1網(wǎng)絡(luò)爬蟲(chóng)工作的基本原理7.2網(wǎng)頁(yè)內(nèi)容獲取-requ第七章網(wǎng)絡(luò)爬蟲(chóng)of31407.6實(shí)戰(zhàn):大數(shù)據(jù)論文文章標(biāo)題采集【案例】采用正則表達(dá)式的方法,解析出大論文的文章標(biāo)題importrequestsfrombs4importBeautifulSoupimportredefgethtmltext(url):try:r=requests.get(url,timeout=30)r.raise_for_status()#r.encoding='utf-8'returnr.textexcept:print('error')return""defpaper_title(page):myItems=re.findall(r'target=\"_blank\">(.*?)</a>',page)foriteminmyItems:print(item)第七章網(wǎng)絡(luò)爬蟲(chóng)of31407.6實(shí)戰(zhàn):大數(shù)據(jù)論文文章標(biāo)題第七章網(wǎng)絡(luò)爬蟲(chóng)of31417.6實(shí)戰(zhàn):大數(shù)據(jù)論文文章標(biāo)題采集url='/6674.html'html=gethtmltext(url)#得到大論文的總篇數(shù)list1=re.findall(r'<atitle="總數(shù)"> <b>(.*?)</b>',html)count=int(list1[0])print('大數(shù)據(jù)論文共'+str(count)+'篇')j=0#一頁(yè)顯示20篇論文,構(gòu)造出每頁(yè)論文的域名foriinrange(1,count+1,20):print('第'+str(j+1)+'頁(yè)')ifj==0:url='/6674.html'else:url='/6674_'+str(j)+'.html'j=j+1#print(url)#讀取網(wǎng)頁(yè)并解析html=gethtmltext(url)paper_title(html)第七章網(wǎng)絡(luò)爬蟲(chóng)of31417.6實(shí)戰(zhàn):大數(shù)據(jù)論文文章標(biāo)題第七章網(wǎng)絡(luò)爬蟲(chóng)of31427.6實(shí)戰(zhàn):大數(shù)據(jù)論文文章標(biāo)題采集運(yùn)行結(jié)果:第七章網(wǎng)絡(luò)爬蟲(chóng)of31427.6實(shí)戰(zhàn):大數(shù)據(jù)論文文章標(biāo)題7.1
網(wǎng)絡(luò)爬蟲(chóng)工作的基本原理7.2
網(wǎng)頁(yè)內(nèi)容獲取-requests庫(kù)概述7.3網(wǎng)頁(yè)內(nèi)容解析-BeautifulSoup庫(kù)7.6實(shí)戰(zhàn):大數(shù)據(jù)論文文章標(biāo)題采集習(xí)題7.5實(shí)戰(zhàn):熱門(mén)電影搜索of56437.7實(shí)戰(zhàn):全國(guó)空氣質(zhì)量第七章網(wǎng)絡(luò)爬蟲(chóng)7.4
正則表達(dá)式7.1網(wǎng)絡(luò)爬蟲(chóng)工作的基本原理7.2網(wǎng)頁(yè)內(nèi)容獲取-requ第七章網(wǎng)絡(luò)爬蟲(chóng)of31447.7實(shí)戰(zhàn):全國(guó)空氣質(zhì)量【案例】用beautifulsoup4爬取全國(guó)空氣質(zhì)量數(shù)據(jù)importrequestsfrombs4importBeautifulSoup#一共有318座重點(diǎn)城市a=[[0forcolinrange(3)]forrowinrange(318)]defgethtmltext(url):try:r=requests.get(url,timeout=30)r.raise_for_status()#r.encoding='utf-8'returnr.textexcept:print('error')return""第七章網(wǎng)絡(luò)爬蟲(chóng)of31447.7實(shí)戰(zhàn):全國(guó)空氣質(zhì)量【案例第七章網(wǎng)絡(luò)爬蟲(chóng)of31457.7實(shí)戰(zhàn):全國(guó)空氣質(zhì)量deffillweather(soup):j=i=0city_name_list=soup.find_all(class_='tdtd-2nd')city_num_list=soup.find_all(class_='tdtd-4rd')#print(len(city_name_list))#print('ghghggh')whilei<len(city_name_list):city_name=city_name_list[i].get_text()city_num=city_num_list[j].get_text()#city_num=city_num_list[j].text#兩種方法都可以city_info=city_num_list[j+1].get_text()a[i][0]=city_namea[i][1]=city_numa[i][2]=city_infoi=i+1j=j+2defprintweather():print('排名','城市','空氣質(zhì)量指數(shù)','質(zhì)量狀況')foriinrange(317):print(i+1,a[i])第七章網(wǎng)絡(luò)爬蟲(chóng)of31457.7實(shí)戰(zhàn):全國(guó)空氣質(zhì)量def第七章網(wǎng)絡(luò)爬蟲(chóng)of31467.7實(shí)戰(zhàn):全國(guó)空氣質(zhì)量defmain():#全國(guó)重點(diǎn)城市空氣質(zhì)量指數(shù)排行榜url='/air'html=gethtmltext(url)#print(html)if(html!=''):soup=BeautifulSoup(html,'html.parser')fillweather(soup)printweather()main()第七章網(wǎng)絡(luò)爬蟲(chóng)of31467.7實(shí)戰(zhàn):全國(guó)空氣質(zhì)量def第七章網(wǎng)絡(luò)爬蟲(chóng)of31477.7實(shí)戰(zhàn):全國(guó)空氣質(zhì)量運(yùn)行結(jié)果:第七章網(wǎng)絡(luò)爬蟲(chóng)of31477.7實(shí)戰(zhàn):全國(guó)空氣質(zhì)量運(yùn)行結(jié)7.1
網(wǎng)絡(luò)爬蟲(chóng)工作的基本原理7.2
網(wǎng)頁(yè)內(nèi)容獲取-requests庫(kù)概述7.3網(wǎng)頁(yè)內(nèi)容解析-BeautifulSoup庫(kù)7.6實(shí)戰(zhàn):大數(shù)據(jù)論文文章標(biāo)題采集習(xí)題7.5實(shí)戰(zhàn):熱門(mén)電影搜索of56487.7實(shí)戰(zhàn):全國(guó)空氣質(zhì)量第七章網(wǎng)絡(luò)爬蟲(chóng)7.4
正則表達(dá)式7.1網(wǎng)絡(luò)爬蟲(chóng)工作的基本原理7.2網(wǎng)頁(yè)內(nèi)容獲取-requ習(xí)題:1.用Python爬取今日頭條動(dòng)態(tài)頁(yè)面數(shù)據(jù)。2.用Python爬取電影票房數(shù)據(jù)網(wǎng)http://58921.com/alltime,并按年份進(jìn)行票房統(tǒng)計(jì)。3.用Python爬取你感興趣的電影的影評(píng)。4.用正則表達(dá)式的分組元字符求解案例7-6的城市列表。5.用Python爬取天堂圖片網(wǎng)/tupian中的節(jié)日?qǐng)D片,并保存到文件中。6.用Python的itcha庫(kù),爬取好友的個(gè)性簽名數(shù)據(jù)并進(jìn)行詞頻分析和聚類。7.用Python爬取餓了么網(wǎng)站數(shù)據(jù)。8.使用python模擬登錄網(wǎng)站。9.從美國(guó)駐北京大使館提供的PM2.5歷史數(shù)據(jù)網(wǎng)站上(/web/historical/1/1.html),爬取北京pm25數(shù)據(jù)的相關(guān)csv文件并作處理。習(xí)題:1.用Python爬取今日頭條動(dòng)態(tài)頁(yè)面數(shù)據(jù)。感謝聆聽(tīng)感謝聆聽(tīng)7.1
網(wǎng)絡(luò)爬蟲(chóng)工作的基本原理7.2
網(wǎng)頁(yè)內(nèi)容獲取-requests庫(kù)概述7.3網(wǎng)頁(yè)內(nèi)容解析-BeautifulSoup庫(kù)7.6實(shí)戰(zhàn):大數(shù)據(jù)論文文章標(biāo)題采集習(xí)題7.5實(shí)戰(zhàn):熱門(mén)電影搜索of56517.7實(shí)戰(zhàn):全國(guó)空氣質(zhì)量第七章網(wǎng)絡(luò)爬蟲(chóng)7.4
正則表達(dá)式7.1網(wǎng)絡(luò)爬蟲(chóng)工作的基本原理7.2網(wǎng)頁(yè)內(nèi)容獲取-requ第七章網(wǎng)絡(luò)爬蟲(chóng)of31527.1.1網(wǎng)頁(yè)的概念7.1類的方法1、URL的含義URL(UniformResourceLocator,URL)稱為統(tǒng)一資源定位符,也稱為網(wǎng)址。互聯(lián)網(wǎng)上的每個(gè)頁(yè)面,都對(duì)應(yīng)一個(gè)URL。如:瀏覽上海市空氣質(zhì)量和pm2.5指標(biāo)的網(wǎng)址為/air/shanghai.html。URL主要包含四個(gè)部分:協(xié)議部分,如上海市空氣質(zhì)量網(wǎng)址的協(xié)議為“http:”,表示超文本傳輸協(xié)議;網(wǎng)站名部分,如上海市空氣質(zhì)量網(wǎng)址的網(wǎng)站名部分為,表示該網(wǎng)頁(yè)所在的主機(jī)位置;端口部分,跟在域名后面的是端口,域名和端口之間使用“:”作為分隔符,端口不是一個(gè)URL必須的部分,如果采用默認(rèn)端口80,則可以省略端口部分;虛擬目錄和文件名部分,如上海市空氣質(zhì)量網(wǎng)址的虛擬目錄和文件名部分內(nèi)容為/air/shanghai.html,表示該網(wǎng)頁(yè)在這個(gè)主機(jī)上的具體路徑。第七章網(wǎng)絡(luò)爬蟲(chóng)of3127.1.1網(wǎng)頁(yè)的概念7.1類第七章網(wǎng)絡(luò)爬蟲(chóng)of31537.1.1網(wǎng)頁(yè)的概念7.1類的方法2、頁(yè)面的渲染用戶若想要瀏覽城市空氣質(zhì)量排名情況,必須輸入網(wǎng)址:/air。得到如圖7.1的結(jié)果,網(wǎng)頁(yè)的樣式,實(shí)際上是html源代碼經(jīng)過(guò)渲染后形成的。這個(gè)頁(yè)面實(shí)際上是用戶通過(guò)瀏覽器向DNS服務(wù)器提交/air后,找到web主機(jī)服務(wù)器,主機(jī)服務(wù)器經(jīng)過(guò)解析,將包含圖片、HTML、JS、CSS等文件返回到用戶瀏覽器,用戶瀏覽器將這些文件的代碼解析渲染,最終就是用戶看到的結(jié)果。整個(gè)這個(gè)過(guò)程稱為用戶的請(qǐng)求和響應(yīng),響應(yīng)給客戶的是html代碼。第七章網(wǎng)絡(luò)爬蟲(chóng)of3137.1.1網(wǎng)頁(yè)的概念7.1類第七章網(wǎng)絡(luò)爬蟲(chóng)of31547.1.1網(wǎng)頁(yè)的概念7.1類的方法3、網(wǎng)頁(yè)文件的格式網(wǎng)頁(yè)文件主要是由各種標(biāo)簽對(duì)構(gòu)成的一個(gè)純文本文件,如:<head>與</head>標(biāo)簽對(duì),<li>與</li>標(biāo)簽對(duì)等,不同的標(biāo)簽有不同的作用。如:li標(biāo)簽定義列表項(xiàng)目,span標(biāo)簽被用來(lái)組合文檔中的行內(nèi)元素。標(biāo)簽可以有屬性,可以有顯示的文本。下面以表格第一行樂(lè)山市對(duì)應(yīng)的第二列的html代碼(<spanclass="tdtd-2nd"><ahref="/air/leshan.html"target="_blank">樂(lè)山市</a></span>)為例進(jìn)行說(shuō)明:<spanclass="tdtd-2nd">與</span>:是一對(duì)標(biāo)簽,class="tdtd-2nd",說(shuō)明,span標(biāo)簽有一個(gè)class屬性,值為"tdtd-2nd",用于設(shè)置列的外觀。<ahref="/air/leshan.html"target="_blank">樂(lè)山市</a>,是span標(biāo)簽的內(nèi)嵌<a>標(biāo)簽,用于設(shè)置超鏈接的,超鏈接文本是“樂(lè)山市”,超鏈接網(wǎng)址是/air/leshan.html,是個(gè)相對(duì)路徑,絕對(duì)路徑是/air/leshan.html。第七章網(wǎng)絡(luò)爬蟲(chóng)of3147.1.1網(wǎng)頁(yè)的概念7.1類第七章網(wǎng)絡(luò)爬蟲(chóng)of31557.1.2網(wǎng)絡(luò)爬蟲(chóng)的工作流程7.1類的方法網(wǎng)絡(luò)爬蟲(chóng)實(shí)質(zhì)上是一個(gè)能自動(dòng)下載網(wǎng)頁(yè)的程序,它是搜索引擎中最核心的部分。通用網(wǎng)絡(luò)爬蟲(chóng)是從一個(gè)或若干個(gè)初始網(wǎng)頁(yè)上的URL開(kāi)始,讀取網(wǎng)頁(yè)的代碼并對(duì)頁(yè)面結(jié)構(gòu)進(jìn)行分析、過(guò)濾,并對(duì)感興趣的內(nèi)容建立索引,同時(shí)提取網(wǎng)頁(yè)上的其他感興趣的超鏈接地址,放入到待爬行隊(duì)列中,如此循環(huán),直到滿足系統(tǒng)的停止條件為止。在爬取網(wǎng)頁(yè)過(guò)程中,如何根據(jù)當(dāng)前網(wǎng)頁(yè)的超鏈接頁(yè)面,形成待爬行隊(duì)列呢?目前有基于IP地址搜索策略、廣度優(yōu)先策略、深度優(yōu)先策略和最佳優(yōu)先等,具體請(qǐng)看相關(guān)文檔。第七章網(wǎng)絡(luò)爬蟲(chóng)of3157.1.2網(wǎng)絡(luò)爬蟲(chóng)的工作流程7第七章網(wǎng)絡(luò)爬蟲(chóng)of31567.1.3Python與網(wǎng)頁(yè)爬蟲(chóng)7.1類的方法使用Python語(yǔ)言實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲(chóng)和信息提交是非常簡(jiǎn)單的事情,代碼行數(shù)很少,也無(wú)須知道網(wǎng)絡(luò)通信等方面知識(shí),非常適合非專業(yè)讀者使用。然而,肆意的爬取網(wǎng)絡(luò)數(shù)據(jù)并不是文明現(xiàn)象,通過(guò)程序自動(dòng)提交內(nèi)容爭(zhēng)取競(jìng)爭(zhēng)性資源也不公平。就像那些肆意的推銷電話一樣,他們無(wú)視接聽(tīng)者意愿,不僅令人討厭也有可能引發(fā)法律糾紛。在互聯(lián)網(wǎng)上爬取數(shù)據(jù),要遵從Robots排除協(xié)議(RobotsExclusionProtocol),它也被稱為爬蟲(chóng)協(xié)議,是網(wǎng)站管理者表達(dá)是否希望爬蟲(chóng)自動(dòng)獲取網(wǎng)絡(luò)信息意愿的方法。管理者可以在網(wǎng)站根目錄放置一個(gè)robots.txt文件,并在文件中列出哪些鏈接不允許爬蟲(chóng)爬取。一般搜索引擎的爬蟲(chóng)會(huì)首先捕獲這個(gè)文件,并根據(jù)文件要求爬取網(wǎng)站內(nèi)容。Robots排除協(xié)議重點(diǎn)約定不希望爬蟲(chóng)獲取的內(nèi)容,如果沒(méi)有該文件則表示網(wǎng)站內(nèi)容可以被爬蟲(chóng)獲得,然而,Robots協(xié)議不是命令和強(qiáng)制手段,只是國(guó)際互聯(lián)網(wǎng)的一種通用道德規(guī)范。絕大部分成熟的搜索引擎爬蟲(chóng)都會(huì)遵循這個(gè)協(xié)議,建議個(gè)人也能按照互聯(lián)網(wǎng)規(guī)范要求合理使用爬蟲(chóng)技術(shù)。第七章網(wǎng)絡(luò)爬蟲(chóng)of3167.1.3Python與網(wǎng)頁(yè)爬7.1
網(wǎng)絡(luò)爬蟲(chóng)工作的基本原理7.2
網(wǎng)頁(yè)內(nèi)容獲取-requests庫(kù)概述7.3網(wǎng)頁(yè)內(nèi)容解析-BeautifulSoup庫(kù)7.6實(shí)戰(zhàn):大數(shù)據(jù)論文文章標(biāo)題采集習(xí)題7.5實(shí)戰(zhàn):熱門(mén)電影搜索of56577.7實(shí)戰(zhàn):全國(guó)空氣質(zhì)量第七章網(wǎng)絡(luò)爬蟲(chóng)7.4
正則表達(dá)式7.1網(wǎng)絡(luò)爬蟲(chóng)工作的基本原理7.2網(wǎng)頁(yè)內(nèi)容獲取-requ第七章網(wǎng)絡(luò)爬蟲(chóng)of31587.2.1requests對(duì)象7.2網(wǎng)頁(yè)內(nèi)容獲取-requests庫(kù)概述http工作原理:HTTP是基于請(qǐng)求-響應(yīng)模式的,客戶端發(fā)出請(qǐng)求叫Request,服務(wù)器端的響應(yīng)叫Response。HTTP請(qǐng)求服務(wù)器端,常用的方式是GET和POST。通常,GET表示向指定的服務(wù)器請(qǐng)求數(shù)據(jù),POST表示向指定的服務(wù)器提交要被處理的數(shù)據(jù)。Requests請(qǐng)求的相關(guān)函數(shù):Get(url,timeout=n):對(duì)應(yīng)HTTP的get方法,獲取網(wǎng)頁(yè)內(nèi)容,timeout設(shè)定每次請(qǐng)求的超時(shí)時(shí)間,單位秒。該函數(shù)將網(wǎng)頁(yè)的內(nèi)容封裝成一個(gè)Response對(duì)象并返回。Post(url,data={‘key’:’value’}):對(duì)應(yīng)HTTP的post方式,其中字典用于傳遞客戶端數(shù)據(jù)。第七章網(wǎng)絡(luò)爬蟲(chóng)of3187.2.1requests對(duì)象第七章網(wǎng)絡(luò)爬蟲(chóng)of31597.2.2response對(duì)象7.2網(wǎng)頁(yè)內(nèi)容獲取-requests庫(kù)概述通過(guò)Response對(duì)象的屬性可以獲取網(wǎng)頁(yè)內(nèi)容。屬性:Status_code:http請(qǐng)求返回的狀態(tài),整數(shù),200表示連接成功,404表示失敗。在處理網(wǎng)頁(yè)數(shù)據(jù)前,要先判斷該狀態(tài)值。Text:頁(yè)面內(nèi)容,以字符串形式存儲(chǔ)在text中。Encoding:HTTP響應(yīng)內(nèi)容的編碼格式,通過(guò)此屬性可以更改返回頁(yè)面的編碼格式,便于處理中文。方法:Json():如果HTTP響應(yīng)頁(yè)面包含JSON格式數(shù)據(jù),該方法能夠在HTTP響應(yīng)內(nèi)容中解析存在的JSON數(shù)據(jù),這將帶來(lái)解析HTTP的便利。raise_for_status():方法能在非成功響應(yīng)后產(chǎn)生異常,即只要返?;氐恼?qǐng)求狀態(tài)status_code不是200,這個(gè)方法會(huì)產(chǎn)生一個(gè)異常,用于try…except語(yǔ)句。使用異常處理語(yǔ)句可以避免設(shè)置一堆復(fù)雜的if語(yǔ)句,只需要在收到響應(yīng)調(diào)用這個(gè)方法。第七章網(wǎng)絡(luò)爬蟲(chóng)of3197.2.2response對(duì)象第七章網(wǎng)絡(luò)爬蟲(chóng)of31607.2.2response對(duì)象7.2網(wǎng)頁(yè)內(nèi)容獲取-requests庫(kù)概述當(dāng)遇到網(wǎng)絡(luò)問(wèn)題時(shí)阿,requests會(huì)產(chǎn)生幾種常用異常。例如:DNS查詢失敗、拒絕連接等,requests會(huì)拋出ConnectionError異常。遇到無(wú)效HTTP響應(yīng)時(shí),requests則會(huì)拋出HTTPError異常。若請(qǐng)求url超時(shí),則拋出Timeout異常。請(qǐng)求超過(guò)了設(shè)定的最大重定向次數(shù),則會(huì)拋出一個(gè)TooManyRedirects異常。所以在使用requests時(shí),通常需要將此語(yǔ)句放在try快中進(jìn)行處理。第七章網(wǎng)絡(luò)爬蟲(chóng)of31107.2.2response對(duì)第七章網(wǎng)絡(luò)爬蟲(chóng)of31617.2.2response對(duì)象7.2網(wǎng)頁(yè)內(nèi)容獲取-requests庫(kù)概述【案例7-1】爬取天堂圖片網(wǎng)中小黃人圖片網(wǎng)頁(yè)的內(nèi)容importrequestsdefgethtmltext(url):try:r=requests.get(url,timeout=30)r.raise_for_status()returnr.textexcept:return"“url="/tupian/xiaohuangren_t21343/"print(gethtmltext(url))第七章網(wǎng)絡(luò)爬蟲(chóng)of31117.2.2response對(duì)7.1
網(wǎng)絡(luò)爬蟲(chóng)工作的基本原理7.2
網(wǎng)頁(yè)內(nèi)容獲取-requests庫(kù)概述7.3網(wǎng)頁(yè)內(nèi)容解析-BeautifulSoup庫(kù)7.6實(shí)戰(zhàn):大數(shù)據(jù)論文文章標(biāo)題采集習(xí)題7.5實(shí)戰(zhàn):熱門(mén)電影搜索of56627.7實(shí)戰(zhàn):全國(guó)空氣質(zhì)量第七章網(wǎng)絡(luò)爬蟲(chóng)7.4
正則表達(dá)式7.1網(wǎng)絡(luò)爬蟲(chóng)工作的基本原理7.2網(wǎng)頁(yè)內(nèi)容獲取-requ第七章網(wǎng)絡(luò)爬蟲(chóng)of31637.3.1BeautifulSoup庫(kù)概述7.3網(wǎng)頁(yè)內(nèi)容解析-BeautifulSoup庫(kù)beautifulsoup4庫(kù),也稱為BeautifulSoup庫(kù)或bs4庫(kù),用于解析和處理HTML和XML。它的最大優(yōu)點(diǎn)是能根據(jù)HTML和XML語(yǔ)法建立解析樹(shù),進(jìn)而高效解析其中的內(nèi)容。類似于c#中的或HTTP中的文檔類HTML建立的Web頁(yè)面一般非常復(fù)雜,除了有用的內(nèi)容信息外,還包括大量用于頁(yè)面格式的元素,直接解析一個(gè)Web網(wǎng)頁(yè)需要深入了解HTML語(yǔ)法,而且比較復(fù)雜。beautifulsoup4庫(kù)將專業(yè)的Web頁(yè)面格式解析部分封裝成函數(shù),提供了若干有用且便捷的處理函數(shù)。有關(guān)beautifulsoup4庫(kù)的更多介紹請(qǐng)參考這個(gè)第三方庫(kù)主頁(yè):/software/BeautifulSoup/bs4/第七章網(wǎng)絡(luò)爬蟲(chóng)of31137.3.1Beautiful第七章網(wǎng)絡(luò)爬蟲(chóng)of31647.3.1BeautifulSoup庫(kù)概述7.3網(wǎng)頁(yè)內(nèi)容解析-BeautifulSoup庫(kù)例如:有一個(gè)描述學(xué)生選課的XML代碼,表示20004146學(xué)生選修了2門(mén)課,20004176選修了1門(mén)課。<scs> <sc> <sno>20004146</sno> <courses> <course> <cno>1111</cno> <grade>67</grade> </course> <course> <cno>2222</cno> <grade>78</grade> </course> </courses> </sc> <sc> <sno>20004176</sno> <courses> <course> <cno>2222</cno> <grade>70</grade> </course> </courses></sc></scs>第七章網(wǎng)絡(luò)爬蟲(chóng)of31147.3.1Beautiful第七章網(wǎng)絡(luò)爬蟲(chóng)of31657.3.1BeautifulSoup庫(kù)概述7.3網(wǎng)頁(yè)內(nèi)容解析-BeautifulSoup庫(kù)它對(duì)應(yīng)的BeautifulSoup對(duì)象的邏輯結(jié)構(gòu)可以理解成這樣一棵樹(shù)。樹(shù)中一般有4類節(jié)點(diǎn):Tag,NavigableString,BeautifulSoup,Comment,但很多時(shí)候,可以把節(jié)點(diǎn)當(dāng)作Tag對(duì)象。第七章網(wǎng)絡(luò)爬蟲(chóng)of31157.3.1Beautiful第七章網(wǎng)絡(luò)爬蟲(chóng)of31667.3.2beautifulsoup4庫(kù)常用方法和tag節(jié)點(diǎn)7.3網(wǎng)頁(yè)內(nèi)容解析-BeautifulSoup庫(kù)beautifulsoup4提供Xpath操作方式解析數(shù)據(jù):1.即按照解析樹(shù)的邏輯結(jié)構(gòu),解析數(shù)據(jù)。2.解析樹(shù)上的常用節(jié)點(diǎn)是tag節(jié)點(diǎn)。3.常用方法:BeautifulSoup(html,”html.parser”):該方法需要兩個(gè)參數(shù),第一參數(shù)是需要提取數(shù)據(jù)的html文檔內(nèi)容或XML,第二個(gè)參數(shù)是指定解析器。該方法的目的是生成一顆解析樹(shù)。find_all(name,attrs,recursive,string,limit):方法可以根據(jù)標(biāo)簽名字、標(biāo)簽屬性和內(nèi)容檢索并返回標(biāo)簽列表。name為標(biāo)簽名;attrs為標(biāo)簽的屬性名和值,采用JSON表示;recursive,設(shè)置查找層次;string標(biāo)簽的字符串內(nèi)容;limit返回匹配結(jié)果的個(gè)數(shù)。利用string參數(shù)可以實(shí)現(xiàn)模糊查找。find(name,attrs,recursive,string):返回找到的第一個(gè)結(jié)果,find_all()函數(shù)由于可能返回更多結(jié)果,所以采用列表形式存儲(chǔ)返回結(jié)果;find()函數(shù)返回字符串形式,找不到,返回None。第七章網(wǎng)絡(luò)爬蟲(chóng)of31167.3.2beautiful第七章網(wǎng)絡(luò)爬蟲(chóng)of31677.3.2beautifulsoup4庫(kù)常用方法和tag節(jié)點(diǎn)7.3網(wǎng)頁(yè)內(nèi)容解析-BeautifulSoup庫(kù)例如:根據(jù)選課學(xué)號(hào)和門(mén)數(shù)標(biāo)簽字符串,輸出選課的學(xué)號(hào)。>>>soup=BeautifulSoup('<scs><sc><sno>20004146</sno><number>2</number></sc><sc><sno>20181012</sno><number>5</number></sc></scs>')>>>tag=soup.scs>>>print(tag.string)
>>>print(tag.contents[0].name)
>>>print(tag.contents[0].sno.string)
>>>soup.find_all('sno')第七章網(wǎng)絡(luò)爬蟲(chóng)of31177.3.2beautiful7.1
網(wǎng)絡(luò)爬蟲(chóng)工作的基本原理7.2
網(wǎng)頁(yè)內(nèi)容獲取-requests庫(kù)概述7.3網(wǎng)頁(yè)內(nèi)容解析-BeautifulSoup庫(kù)7.6實(shí)戰(zhàn):大數(shù)據(jù)論文文章標(biāo)題采集習(xí)題7.5實(shí)戰(zhàn):熱門(mén)電影搜索of56687.7實(shí)戰(zhàn):全國(guó)空氣質(zhì)量第七章網(wǎng)絡(luò)爬蟲(chóng)7.4
正則表達(dá)式7.1網(wǎng)絡(luò)爬蟲(chóng)工作的基本原理7.2網(wǎng)頁(yè)內(nèi)容獲取-requ第七章網(wǎng)絡(luò)爬蟲(chóng)of31697.4.1正則表達(dá)式概念7.4正則表達(dá)式從網(wǎng)頁(yè)中解析需要的數(shù)據(jù),除了采用beautifulsoup4庫(kù)的方法,也可以根據(jù)被查找字符串的特征,采用正則表達(dá)式的方法,得到符合條件的子字符串。正則表達(dá)式庫(kù)是python的標(biāo)準(zhǔn)庫(kù),使用時(shí):importre,即可。正則表達(dá)式(RegularExpression):稱為規(guī)則表達(dá)式,又稱為規(guī)則字符串,它通過(guò)一個(gè)字符序列來(lái)表示滿足某種邏輯條件的字符串,主要用于字符串模式匹配或字符串匹配。一個(gè)正則表達(dá)式由字母、數(shù)字和一些特殊符號(hào)組成,特殊符號(hào)也稱為元字符,在正則表達(dá)式中具有特殊的含義,可以用來(lái)匹配一個(gè)或若干個(gè)滿足某種條件的字符,這些元字符才是構(gòu)成正則表達(dá)式的關(guān)鍵要素。正則表達(dá)式通過(guò)元字符的各種運(yùn)用,可以表示豐富的匹配字符串。對(duì)程序員來(lái)說(shuō),如果需要從源字符串中得到需要的子字符串(也稱結(jié)果字符串),首先要分析子字符串在源字符串中的規(guī)律,根據(jù)規(guī)律去描述正則表達(dá)式。第七章網(wǎng)絡(luò)爬蟲(chóng)of31197.4.1正則表達(dá)式概念7.第七章網(wǎng)絡(luò)爬蟲(chóng)of31707.4.2正則表達(dá)式元字符介紹7.4正則表達(dá)式1、字符限定元字符字符作用[m1m2……mn]表示一個(gè)字符集合(m1、m2……mn等均為單個(gè)字符),表示可以與集合中的任意一個(gè)字符匹配[^m1m2……mn]表示可以與集合之外的任意一個(gè)字符匹配[m-n]表示一個(gè)字符范圍集合,表示可以與字符m到n之間的所有字符匹配[^m-n]表示可以與集合范圍之外的任意一個(gè)字符匹配\d用來(lái)匹配一個(gè)數(shù)字字符,相當(dāng)于“[0-9]”\D用來(lái)匹配一個(gè)非數(shù)字字符,相當(dāng)于“[^0-9]”\w用來(lái)匹配一個(gè)單詞字符(包括數(shù)字、大小寫(xiě)字母和下畫(huà)線),相當(dāng)于“[A-Za-z0-9_]”\W用來(lái)匹配任意一個(gè)非單詞字符,相當(dāng)于“[^A-Za-z0-9_]”\s用來(lái)匹配一個(gè)不可見(jiàn)字符(包括空格、制表符、換行符等)\S用來(lái)匹配一個(gè)可見(jiàn)字符.用來(lái)匹配除了換行符外的任意一個(gè)字符第七章網(wǎng)絡(luò)爬蟲(chóng)of31207.4.2正則表達(dá)式元字符介第七章網(wǎng)絡(luò)爬蟲(chóng)of31717.4.2正則表達(dá)式元字符介紹7.4正則表達(dá)式【簡(jiǎn)單案例】>>>importre>>>str='''<spanclass="tdtd-2nd"><ahref="/air/nanchang.html"target="_blank">南昌市</a></span><spanclass="tdtd-4rd">17</span><spanclass="tdtd-4rd"><emclass="f1"style="color:#79b800">優(yōu)</em></span>'''則:>>>re.findall(r"\d\d",str)['17','79','80']#匹配出str中只含2個(gè)數(shù)字的字符串>>>re.findall(r"[6789]\d",str)#匹配出str中只含2個(gè)數(shù)字的字符串,且第一個(gè)數(shù)字符號(hào)可以是6或7或8或9['79','80']>>>re.findall(r"td.",str)#匹配出str中以td開(kāi)頭,第三個(gè)字符不是換行符的連續(xù)三個(gè)字符['td','td-','td','td-','td','td-']>>>s='aaa,bbbccchigh'#定義字符串>>>re.findall(r'[a-zA-Z]+',s)['aaa','bbb','ccc','high']#實(shí)現(xiàn)了分詞效果第七章網(wǎng)絡(luò)爬蟲(chóng)of31217.4.2正則表達(dá)式元字符介第七章網(wǎng)絡(luò)爬蟲(chóng)of31727.4.2正則表達(dá)式元字符介紹7.4正則表達(dá)式2、數(shù)量限定元字符字符作用*用來(lái)匹配前面的字符任意多次(0到多次)+用來(lái)匹配前面的字符一次或多次?用來(lái)匹配前面的字符零次或一次{n}用來(lái)匹配前面的字符n次,n是一個(gè)非負(fù)整數(shù){n,}用來(lái)匹配前面的字符至少n次,n是一個(gè)非負(fù)整數(shù){n,m}用來(lái)匹配前面的字符串至少n次,至多m次,m和n為非負(fù)整數(shù)且n≤m*?,+?,??,{}??跟在前面所述的任何一個(gè)數(shù)量限定符后面時(shí),表示匹配模式是非貪婪的,即盡可能少地匹配字符串。而默認(rèn)情況下,匹配是貪婪的,即盡可能多地匹配所搜索的字符串。請(qǐng)將案例7-2中注釋掉的正則表達(dá)式改為list1=re.findall(r"\"_blank\">.{1,
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 IEC 60071:2025 SER EN-FR Insulation co-ordination - ALL PARTS
- 湖南省永州市道縣2024-2025學(xué)年八年級(jí)上學(xué)期期末考試道德與法治試卷(含答案)
- 廣東省揭陽(yáng)市榕城區(qū)2024-2025年第一學(xué)期期終質(zhì)量檢測(cè)小學(xué)二年級(jí)數(shù)學(xué)科試卷(含答案)
- 2024甲乙雙方關(guān)于合作開(kāi)發(fā)移動(dòng)支付技術(shù)的合同
- 2024水利部門(mén)與水庫(kù)運(yùn)營(yíng)管理公司合同
- 福建省南平市嵐下中學(xué)高二數(shù)學(xué)理月考試卷含解析
- 雨雪冰凍災(zāi)害處置應(yīng)急預(yù)案
- 2024版經(jīng)濟(jì)與法律顧問(wèn)聘用協(xié)議書(shū)
- 2024版商用車輛運(yùn)輸業(yè)務(wù)協(xié)議模板集版B版
- 2024規(guī)范借款簡(jiǎn)單合同范本
- 銷售業(yè)績(jī)下滑分析報(bào)告
- 財(cái)務(wù)對(duì)標(biāo)分析報(bào)告
- 《病歷書(shū)寫(xiě)基本規(guī)范》課件
- 經(jīng)理年終工作總結(jié)述職報(bào)告ppt模板
- 新概念張?jiān)粕v解的筆記
- 淺談初中歷史單元作業(yè)的設(shè)計(jì)策略
- 修訂完整-(兒研所)嬰幼兒發(fā)育診斷量表幼兒教育
- 教代會(huì)會(huì)場(chǎng)背景(紅旗)圖片課件
- 工學(xué)第八章-固相反應(yīng)課件
- 臨時(shí)用電拆除方案
- 垂體瘤診療規(guī)范內(nèi)科學(xué)診療規(guī)范診療指南2023版
評(píng)論
0/150
提交評(píng)論