




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Python網(wǎng)絡(luò)爬蟲第一單元爬取靜態(tài)網(wǎng)頁(yè)教學(xué)概述概述在網(wǎng)站設(shè)計(jì)中,純粹HTML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言下的一個(gè)應(yīng)用)格式的網(wǎng)頁(yè)通常被稱為“靜態(tài)網(wǎng)頁(yè)”,靜態(tài)網(wǎng)頁(yè)是標(biāo)準(zhǔn)的HTML文件,它的文件擴(kuò)展名是.htm、.html,可以包含文本、圖像、聲音、FLASH動(dòng)畫、客戶端腳本和ActiveX控件及JAVA小程序等。靜態(tài)網(wǎng)頁(yè)是網(wǎng)站建設(shè)的基礎(chǔ),早期的網(wǎng)站一般都是由靜態(tài)網(wǎng)頁(yè)制作的。靜態(tài)網(wǎng)頁(yè)是相對(duì)于動(dòng)態(tài)網(wǎng)頁(yè)而言,是指沒有后臺(tái)數(shù)據(jù)庫(kù)、不含程序和不可交互的網(wǎng)頁(yè)。靜態(tài)網(wǎng)頁(yè)相對(duì)更新起來比較麻煩,適用于一般更新較少的展示型網(wǎng)站。靜態(tài)網(wǎng)頁(yè)有時(shí)也被稱為平面頁(yè)。靜態(tài)網(wǎng)頁(yè)面通常是超文本標(biāo)記語(yǔ)言文檔存儲(chǔ)為文件在文件系統(tǒng)里頭,并且可以通過HTTP訪問網(wǎng)絡(luò)服務(wù)器。第一單元爬取靜態(tài)網(wǎng)頁(yè)0203爬取天氣預(yù)報(bào)數(shù)據(jù)爬取百度搜索爬取汽車銷售分頁(yè)數(shù)據(jù)01情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)01030204情境概述知識(shí)準(zhǔn)備案例講解總結(jié)PART01情境概述情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)情境概述學(xué)習(xí)情境描述教學(xué)情境描述:通過學(xué)習(xí)教師講授相關(guān)Requests、BeautifulSoup4、CSV技術(shù)的應(yīng)用,學(xué)習(xí)如何在實(shí)際靜態(tài)網(wǎng)頁(yè)數(shù)據(jù)采集中應(yīng)用Requests獲取網(wǎng)頁(yè)源數(shù)據(jù);使用BeautifulSoup4根據(jù)網(wǎng)頁(yè)源代碼提取目標(biāo)數(shù)據(jù);使用CSV將程序過程數(shù)據(jù)持久化存儲(chǔ)于本地。這就是一種最簡(jiǎn)單的三步靜態(tài)網(wǎng)頁(yè)數(shù)據(jù)爬蟲操作步驟和應(yīng)用。關(guān)鍵知識(shí)點(diǎn):爬蟲的原理、HTTP請(qǐng)求原理、Python庫(kù)環(huán)境管理、Requests網(wǎng)絡(luò)交互、BeautifulSoup4數(shù)據(jù)結(jié)構(gòu)化解析、IO流數(shù)據(jù)處理、CSV文件數(shù)據(jù)操作。關(guān)鍵技能點(diǎn):Python庫(kù)環(huán)境安裝、Requests請(qǐng)求源數(shù)據(jù)、BeautifulSoup4數(shù)據(jù)解析、CSV本地文件數(shù)據(jù)存儲(chǔ)。情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)情境概述本節(jié)課的學(xué)習(xí)目標(biāo)正確理解爬蟲的原理。正確掌握Http網(wǎng)絡(luò)交互及攜帶信息流程。正確掌握Python模塊庫(kù)(Requests、BeautifulSoup4、CSV)安裝管理應(yīng)用。能根據(jù)實(shí)際網(wǎng)頁(yè)源,分析網(wǎng)絡(luò)爬蟲請(qǐng)求限制。能根據(jù)實(shí)際網(wǎng)頁(yè)源,使用Requests獲取源代碼數(shù)據(jù)。能根據(jù)HTML源代碼結(jié)構(gòu),使用BeautifulSoup4獲取對(duì)應(yīng)節(jié)點(diǎn)對(duì)象。能使用BeautifulSoup4獲取對(duì)應(yīng)節(jié)點(diǎn)相關(guān)屬性及內(nèi)容數(shù)據(jù)。能使用CSV模塊,存儲(chǔ)程序過程中的數(shù)據(jù)到本地文件。情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)情境概述本節(jié)課的任務(wù)書完成通過PIP命令安裝及管理Requests、BeautifulSoup4、CSV庫(kù)。完成通過Requests獲取中國(guó)天氣網(wǎng)華北地區(qū)天氣預(yù)報(bào)網(wǎng)頁(yè)源代碼。完成通過BeautifulSoup4解析結(jié)構(gòu)化網(wǎng)頁(yè),并獲取對(duì)應(yīng)城市的各類天氣數(shù)據(jù)。完成通過CSV將解析到的各城市天氣數(shù)據(jù)本地結(jié)構(gòu)化存儲(chǔ)。情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)PART02知識(shí)準(zhǔn)備情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)知識(shí)準(zhǔn)備引導(dǎo)問題了解什么是網(wǎng)絡(luò)爬蟲,說明網(wǎng)絡(luò)爬蟲相關(guān)原理。了解網(wǎng)絡(luò)爬蟲的流程,并理解各流程都有什么意義。網(wǎng)絡(luò)爬蟲前我們需要準(zhǔn)備什么?如何獲取網(wǎng)頁(yè)源代碼?如何解析網(wǎng)頁(yè)源數(shù)據(jù)?如何本地化存儲(chǔ)數(shù)據(jù)?情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)知識(shí)準(zhǔn)備知識(shí)點(diǎn)介紹RequestsBeautifulSoup4CSV情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)知識(shí)準(zhǔn)備Requests情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)Requests框架介紹RequestsisanelegantandsimpleHTTPlibraryforPython,builtforhumanbeings.RequestsallowsyoutosendHTTP/1.1requestsextremelyeasily.There’snoneedtomanuallyaddquerystringstoyourURLs,ortoform-encodeyourPOSTdata.Keep-aliveandHTTPconnectionpoolingare100%automatic,thankstourllib3.Requests是一個(gè)基于Apache2協(xié)議開源的PythonHTTP庫(kù),號(hào)稱是“為人類準(zhǔn)備的HTTP庫(kù)”。Requests有如特點(diǎn):知識(shí)準(zhǔn)備情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)Keep-Alive&連接池國(guó)際化域名和URL帶持久Cookie的會(huì)話瀏覽器式的SSL認(rèn)證自動(dòng)內(nèi)容解碼基本/摘要式的身份認(rèn)證優(yōu)雅的key/valueCookie自動(dòng)解壓Unicode響應(yīng)體HTTP(S)代理支持文件分塊上傳流下載連接超時(shí)分塊請(qǐng)求支持.netrc知識(shí)準(zhǔn)備Requests環(huán)境安裝情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)pipinstallRequestspiplist在已安裝列表中顯示了requests2.21.0,表明版本為2.21.0的requests庫(kù)安裝成功。知識(shí)準(zhǔn)備Requests使用方法情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)導(dǎo)入模塊:importrequestsGET請(qǐng)求POST請(qǐng)求r=requests.get("")print(r.status_code)print(r.content)r=requests.post("")print(r.status_code)print(r.content)知識(shí)準(zhǔn)備情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)傳遞參數(shù)自定義請(qǐng)求頭指定Cookiesurl=""r=requests.get(url,params={"name":"zhangsan"})print(r.url)url='/'headers={'user-agent':'Mozilla/5.0'}r=requests.get(url=url,headers=headers)url="/cookies"r=requests.get(url,cookies={'myname':'lisi'})print(r.text)知識(shí)準(zhǔn)備情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)設(shè)置超時(shí)設(shè)置代理r=requests.get('',timeout=5)proxies={'http':'8:8118','http':':9999'}r=requests.get('',proxies=proxies,timeout=2)知識(shí)準(zhǔn)備情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)Session在爬取有些網(wǎng)頁(yè)是要求登錄之后的才能爬取,所以要和服務(wù)器一直保持登錄狀態(tài),而不用都指定cookies,那么可以使用session來完成,Session提供的API和requests是一樣的s=requests.Session()s.cookies=requests.utils.cookiejar_from_dict({"b":"d"})r=s.get('/cookies')print(r.text)r=s.get('/cookies')print(r.text)知識(shí)準(zhǔn)備情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)Response當(dāng)我們使用GET、POST或其他方式發(fā)起網(wǎng)絡(luò)請(qǐng)求后,就可以獲得一個(gè)Response對(duì)象,我們可以從這個(gè)對(duì)象中獲取所有我們想要的信息。實(shí)際請(qǐng)求的URL:r.url推測(cè)的文本編碼:r.encoding二進(jìn)制相應(yīng)內(nèi)容:r.contentJSON相應(yīng)內(nèi)容:r.json()原始相應(yīng)內(nèi)容:r.raw響應(yīng)狀態(tài)碼:r.status_code響應(yīng)頭:r.headersCookie:r.cookies響應(yīng)歷史:r.history知識(shí)準(zhǔn)備BeautifulSoup4情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)BeautifulSoup4框架介紹BeautifulSoupisaPythonlibraryforpullingdataoutofHTMLandXMLfiles.Itworkswithyourfavoriteparsertoprovideidiomaticwaysofnavigating,searching,andmodifyingtheparsetree.Itcommonlysavesprogrammershoursordaysofwork.BeautifulSoup是一個(gè)可以從HTML或XML文件中提取數(shù)據(jù)的Python庫(kù).它能夠通過你喜歡的轉(zhuǎn)換器實(shí)現(xiàn)慣用的文檔導(dǎo)航,查找,修改文檔的方式.BeautifulSoup會(huì)幫你節(jié)省數(shù)小時(shí)甚至數(shù)天的工作時(shí)間。BeautifulSoup是一個(gè)HTML/XML的解析器,主要的功能是解析和提取HTML/XML數(shù)據(jù)。BeautifulSoup支持Python標(biāo)準(zhǔn)庫(kù)中的HTML解析器,還支持一些第三方的解析器。通常情況下我們不會(huì)使用Python默認(rèn)的解析器,而是使用lxml解析器,lxml解析器更加強(qiáng)大,速度更快,推薦使用lxml解析器。知識(shí)準(zhǔn)備BeautifulSoup4環(huán)境安裝情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)pipinstallBeautifulSoup4piplist在已安裝列表中顯示了beautifulsoup44.7.1,表明版本為4.7.1的beautifulsoup4庫(kù)安裝成功。知識(shí)準(zhǔn)備BeautifulSoup4使用方法情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)獲取soup對(duì)象html.parserlxmlxmlhtml5lib格式化輸出prettify()獲取節(jié)點(diǎn)BS4對(duì)象soup.標(biāo)簽名find()系列方法select()方法知識(shí)準(zhǔn)備CSV情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)數(shù)據(jù)結(jié)構(gòu)介紹CSV:Comma-SeparatedValues,也稱為:逗號(hào)分隔值。其文件以純文本形式存儲(chǔ)表格數(shù)據(jù)(數(shù)字和文本)。純文本意味著該文件是一個(gè)字符序列,不含必須像二進(jìn)制數(shù)字那樣被解讀的數(shù)據(jù)。CSV文件由任意數(shù)目的記錄組成,記錄間以指定換行符分隔,默認(rèn)換行符為“\r\n”;每條記錄由字段組成,字段間以指定分隔符分割,默認(rèn)分隔符是逗號(hào),最常見的是逗號(hào)或制表符。通常,CSV所有記錄都有完全相同的字段序列,即有公共的數(shù)據(jù)結(jié)構(gòu)。通常都是純文本文件。常用打開方式為記事本或Excel。本身并不存在通用標(biāo)準(zhǔn),也不受存儲(chǔ)樣式限制。知識(shí)準(zhǔn)備CSV模塊安裝情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)Python內(nèi)置模塊,無(wú)需額外安裝進(jìn)入Python交互環(huán)境,importcsv驗(yàn)證知識(shí)準(zhǔn)備數(shù)據(jù)存儲(chǔ)操作情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)csv模塊實(shí)現(xiàn)用于以CSV格式讀取和寫入表格數(shù)據(jù)的類。csv模塊的reader和writer對(duì)象讀取和寫入序列。程序員還可以使用DictReader和DictWriter類以字典形式讀取和寫入數(shù)據(jù)。csv.reader 返回一個(gè)遍歷CSV文件各行的讀取器對(duì)象csv.writer 返回將數(shù)據(jù)寫入CSV文件的寫入器對(duì)象csv.register_dialect 注冊(cè)CSV方言csv.unregister_dialect 注銷CSV方言csv.get_dialect 返回具有給定名稱的方言csv.list_dialects 返回所有已注冊(cè)的方言csv.field_size_limit 返回解析器允許的當(dāng)前最大字段大小PART03案例講解情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)案例講解爬取天氣預(yù)報(bào)數(shù)據(jù)情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)實(shí)例:“中國(guó)天氣網(wǎng)”地區(qū)天氣預(yù)報(bào)頁(yè)面。案例講解爬取天氣預(yù)報(bào)數(shù)據(jù)情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)步驟:確定數(shù)據(jù)源確定目標(biāo)數(shù)據(jù)安裝環(huán)境構(gòu)建項(xiàng)目編寫網(wǎng)頁(yè)爬蟲程序編寫網(wǎng)頁(yè)解析程序編寫數(shù)據(jù)存儲(chǔ)程序運(yùn)行程序效果截圖案例講解爬取天氣預(yù)報(bào)數(shù)據(jù)情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)具體實(shí)操跟隨教材內(nèi)的步驟實(shí)施。PART04總結(jié)情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)總結(jié)總結(jié)情境一:爬取天氣預(yù)報(bào)數(shù)據(jù)本情景,主要介紹了Requests、BeautifulSoup4、CSV的知識(shí),通過對(duì)案例的學(xué)習(xí),讓同學(xué)們掌握Requests、BeautifulSoup4、CSV的運(yùn)用。情境二:爬取百度搜索結(jié)果數(shù)據(jù)01030204情境概述知識(shí)準(zhǔn)備案例講解總結(jié)PART01情境概述情境二:爬取百度搜索結(jié)果數(shù)據(jù)情境概述學(xué)習(xí)情境描述教學(xué)情境描述:通過學(xué)習(xí)教師講授相關(guān)Mechanize、BeautifulSoup4、CSV技術(shù)的應(yīng)用,學(xué)習(xí)如何使用Mechanize模擬瀏覽器操作進(jìn)行網(wǎng)頁(yè)操作,并根據(jù)網(wǎng)頁(yè)結(jié)構(gòu)反饋和用戶行為操作獲取相關(guān)網(wǎng)頁(yè)源數(shù)據(jù);使用BeautifulSoup4根據(jù)網(wǎng)頁(yè)源代碼提取目標(biāo)數(shù)據(jù);使用CSV將程序過程數(shù)據(jù)持久化存儲(chǔ)于本地。關(guān)鍵知識(shí)點(diǎn):Mechanize環(huán)境管理、Mechanize框架理解、Mechanize模擬瀏覽器、Mechanize模擬用戶操作、Urllib2框架理解、BeautifulSoup4數(shù)據(jù)結(jié)構(gòu)化解析、IO流數(shù)據(jù)處理、CSV文件數(shù)據(jù)操作。關(guān)鍵技能點(diǎn):Mechanize環(huán)境管理、Mechanize模擬瀏覽器、Mechanize模擬用戶操作、BeautifulSoup4數(shù)據(jù)解析、CSV本地文件數(shù)據(jù)存儲(chǔ)。情境二:爬取百度搜索結(jié)果數(shù)據(jù)情境概述本節(jié)課的學(xué)習(xí)目標(biāo)正確理解網(wǎng)頁(yè)交互的原理。正確掌握Http網(wǎng)絡(luò)交互及攜帶信息。正確掌握Python模塊庫(kù)(Mechanize、BeautifulSoup4、CSV)安裝管理應(yīng)用。能使用Mechanize模擬瀏覽器發(fā)起HTTP請(qǐng)求訪問。能使用Mechanize模擬用戶行為操作并獲取網(wǎng)頁(yè)源數(shù)據(jù)。能根據(jù)HTML源代碼結(jié)構(gòu),使用BeautifulSoup4獲取對(duì)應(yīng)節(jié)點(diǎn)對(duì)象。能使用BeautifulSoup4獲取對(duì)應(yīng)節(jié)點(diǎn)相關(guān)屬性及內(nèi)容數(shù)據(jù)。能使用CSV模塊,存儲(chǔ)程序過程中的數(shù)據(jù)到本地文件。情境二:爬取百度搜索結(jié)果數(shù)據(jù)情境概述本節(jié)課的任務(wù)書完成通過PIP命令安裝及管理Mechanize、BeautifulSoup4、CSV庫(kù)。完成通過Mechanize模擬瀏覽器訪問百度資訊搜索首頁(yè),并模擬用戶搜索行為,獲取百度資訊搜索結(jié)果網(wǎng)頁(yè)源代碼。完成通過BeautifulSoup4結(jié)構(gòu)化網(wǎng)頁(yè),并獲取對(duì)應(yīng)搜索結(jié)果數(shù)據(jù)。完成通過CSV將解析到的搜索結(jié)果數(shù)據(jù)本地結(jié)構(gòu)化存儲(chǔ)。情境二:爬取百度搜索結(jié)果數(shù)據(jù)PART02知識(shí)準(zhǔn)備情境二:爬取百度搜索結(jié)果數(shù)據(jù)知識(shí)準(zhǔn)備引導(dǎo)問題了解什么是模擬瀏覽器操作,說明模擬瀏覽器操作相關(guān)原理。了解瀏覽器操作都有哪些,并理解各操作都有什么意義。模擬瀏覽器操作,我們需要準(zhǔn)備什么?如何獲取源數(shù)據(jù)?如何解析網(wǎng)頁(yè)源數(shù)據(jù)?如何本地化存儲(chǔ)數(shù)據(jù)?情境二:爬取百度搜索結(jié)果數(shù)據(jù)知識(shí)準(zhǔn)備知識(shí)點(diǎn)介紹Mechanize情境二:爬取百度搜索結(jié)果數(shù)據(jù)知識(shí)準(zhǔn)備Mechanize情境二:爬取百度搜索結(jié)果數(shù)據(jù)Mechanize框架介紹StatefulprogrammaticwebbrowsinginPython.BrowsepagesprogrammaticallywitheasyHTMLformfillingandclickingoflinks.TheMechanizelibraryisusedforautomatinginteractionwithwebsites.Mechanizeautomaticallystoresandsendscookies,followsredirects,andcanfollowlinksandsubmitforms.Formfieldscanbepopulatedandsubmitted.Mechanizealsokeepstrackofthesitesthatyouhavevisitedasahistory.Python中有狀態(tài)的可編程Web瀏覽。使用簡(jiǎn)單的HTML表單填充和單擊鏈接以編程方式瀏覽頁(yè)面。Mechanize是對(duì)Urllib2的部分功能的替換,能夠更好的模擬瀏覽器行為,在Web訪問控制方面做得更全面。它對(duì)protocol,cookie,redirection都做了比較好的支持,再結(jié)合BeautifulSoup和re模塊,可以非常有效的解析web頁(yè)面。知識(shí)準(zhǔn)備Mechanize環(huán)境安裝情境二:爬取百度搜索結(jié)果數(shù)據(jù)pipinstallmechanizepiplist在已安裝列表中顯示了mechanize0.4.5,表明版本為0.4.5的mechanize庫(kù)安裝成功。知識(shí)準(zhǔn)備Mechanize使用方法情境二:爬取百度搜索結(jié)果數(shù)據(jù)導(dǎo)入模塊:importmechanize瀏覽器對(duì)象(Browser)classmechanize.Browser(history=None,
request_class=None,
content_parser=None,
factory_class=<classmechanize._html.Factory>,
allow_xhtml=False)history:對(duì)象實(shí)現(xiàn)mechanize.History接口。注意,這個(gè)接口仍然是實(shí)驗(yàn)性的,將來可能會(huì)改變。此對(duì)象歸瀏覽器實(shí)例所有,不能在瀏覽器之間共享。request_class:請(qǐng)求類使用。默認(rèn)為mechanize.Requestcontent_parser:負(fù)責(zé)解析接收到的HTML/XHTML內(nèi)容的函數(shù)??茨禽v車mechanize._html.content_parser()函數(shù)獲取有關(guān)此函數(shù)必須支持的接口的詳細(xì)信息。factory_class:要使用的HTML工廠類。默認(rèn)為mechanize.Factory知識(shí)準(zhǔn)備情境二:爬取百度搜索結(jié)果數(shù)據(jù)請(qǐng)求對(duì)象(Request)classmechanize.Request(url,data=None,headers={},origin_req_host=None,unverifiable=False,visit=None,timeout=<objectobject>,method=None)url:請(qǐng)求的URL地址。data:與此請(qǐng)求一起發(fā)送的數(shù)據(jù)。可以是將被編碼并作為application/x-www-form-urlencoded數(shù)據(jù)發(fā)送的字典,也可以是將按原樣發(fā)送的bytestring。如果使用bytestring,還應(yīng)該適當(dāng)?shù)卦O(shè)置content-type頭。headers:要與此請(qǐng)求一起發(fā)送的郵件頭。method:用于HTTP請(qǐng)求的方法。如果未指定,mechanize將根據(jù)需要選擇“自動(dòng)獲取”或“自動(dòng)發(fā)布”。timeout:超時(shí)(秒)知識(shí)準(zhǔn)備情境二:爬取百度搜索結(jié)果數(shù)據(jù)響應(yīng)對(duì)象(HTTPResponse)mechanize中的響應(yīng)對(duì)象是seek()能夠的file-類似于支持一些附加方法的對(duì)象,這取決于用于連接的協(xié)議。classmechanize._mechanize.HTTPResponse響應(yīng)對(duì)象HTTPResponse是網(wǎng)絡(luò)請(qǐng)求的響應(yīng)數(shù)據(jù)封裝對(duì)象,可通過此對(duì)象對(duì)響應(yīng)內(nèi)容進(jìn)行提取,比如獲取網(wǎng)頁(yè)請(qǐng)求狀態(tài)、網(wǎng)頁(yè)源代碼等等。HTTPResponse對(duì)象所具有的API函數(shù)和屬性詳見教案。知識(shí)準(zhǔn)備情境二:爬取百度搜索結(jié)果數(shù)據(jù)鏈接(Link)與歷史記錄(History)HTML文檔中的鏈接:classmechanize.Link(base_url,url,text,tag,attrs)瀏覽器訪問歷史記錄:classmechanize.HistoryHTML表單APIHTMLForm:classmechanize.HTMLForm(action,method='GET',enctype='application/x-www-form-urlencoded',name=None,attrs=None,request_class=<class'mechanize._request.Request'>,forms=None,labels=None,id_to_labels=None,encoding=None)Control:classmechanize.Control(type,name,attrs,index=None)PART03案例講解情境二:爬取百度搜索結(jié)果數(shù)據(jù)案例講解爬取百度搜索結(jié)果數(shù)據(jù)情境二:爬取百度搜索結(jié)果數(shù)據(jù)案例講解爬取百度搜索結(jié)果數(shù)據(jù)情境二:爬取百度搜索結(jié)果數(shù)據(jù)步驟:確定數(shù)據(jù)源確定目標(biāo)數(shù)據(jù)安裝環(huán)境構(gòu)建項(xiàng)目編寫網(wǎng)頁(yè)爬蟲程序編寫網(wǎng)頁(yè)解析程序編寫數(shù)據(jù)存儲(chǔ)程序運(yùn)行程序效果截圖案例講解爬取天氣預(yù)報(bào)數(shù)據(jù)情境二:爬取百度搜索結(jié)果數(shù)據(jù)具體實(shí)操跟隨教材內(nèi)的步驟實(shí)施。情境三:爬取汽車銷售分頁(yè)數(shù)據(jù)01030204情境概述知識(shí)準(zhǔn)備案例講解總結(jié)PART01情境概述情境三:爬取汽車銷售分頁(yè)數(shù)據(jù)情境概述學(xué)習(xí)情境描述教學(xué)情境描述:通過學(xué)習(xí)教師講授相關(guān)Scrapy、XPath、MySQL技術(shù)的應(yīng)用,學(xué)習(xí)如何在實(shí)際靜態(tài)網(wǎng)頁(yè)數(shù)據(jù)采集中應(yīng)用Scrapy直接/級(jí)聯(lián)獲取單條/批量網(wǎng)頁(yè)源數(shù)據(jù);使用XPath規(guī)則匹配網(wǎng)頁(yè)節(jié)點(diǎn)提取目標(biāo)數(shù)據(jù);使用PyMySQL存儲(chǔ)過程結(jié)構(gòu)化數(shù)據(jù)于本地MySQL數(shù)據(jù)庫(kù)中。這是比Requests網(wǎng)絡(luò)爬蟲更為復(fù)雜且完善的數(shù)據(jù)采集框架應(yīng)用與場(chǎng)景實(shí)施。關(guān)鍵知識(shí)點(diǎn):Python庫(kù)環(huán)境管理、Scrapy框架理解、Scrapy框架原理、Twisted異步網(wǎng)絡(luò)請(qǐng)求、XPath結(jié)構(gòu)化文檔解析、MySQL數(shù)據(jù)庫(kù)操作、PyMySQL結(jié)構(gòu)化存儲(chǔ)等。關(guān)鍵技能點(diǎn):Python庫(kù)環(huán)境安裝、Scrapy網(wǎng)絡(luò)請(qǐng)求、Twisted異步網(wǎng)絡(luò)、XPath文檔解析、MySQL結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)。情境三:爬取汽車銷售分頁(yè)數(shù)據(jù)情境概述本節(jié)課的學(xué)習(xí)目標(biāo)正確理解Scrapy框架體系。正確理解Twisted異步網(wǎng)絡(luò)請(qǐng)求原理。正確理解Scrapy網(wǎng)絡(luò)爬蟲框架及原理。掌握Scrapy項(xiàng)目系統(tǒng)配置及爬蟲策略配置。正確掌握Python模塊庫(kù)(Scrapy、Twisted、lxml、PyMySQL等)安裝管理應(yīng)用。能根據(jù)實(shí)際網(wǎng)頁(yè)源,分析網(wǎng)絡(luò)爬蟲請(qǐng)求限制。能正確使用Scrapy進(jìn)行多層級(jí)數(shù)據(jù)采集工作。能正確使用XPath規(guī)范格式化文檔并獲取目標(biāo)數(shù)據(jù)。能正確使用PyMySQL完成MySQL結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)。情境三:爬取汽車銷售分頁(yè)數(shù)據(jù)情境概述本節(jié)課的任務(wù)書完成通過PIP命令安裝及管理Scrapy、Twisted、lxml、PyMySQL庫(kù)。完成通過Scrappy獲取列表數(shù)據(jù)、分頁(yè)數(shù)據(jù)及多層級(jí)的汽車銷售數(shù)據(jù)網(wǎng)頁(yè)源代碼。完成通過XPath格式化網(wǎng)頁(yè)源文檔,并獲取對(duì)應(yīng)類型的汽車銷售數(shù)據(jù)。完成通過Pymysql將解析到的各車型銷售數(shù)據(jù)結(jié)構(gòu)化存儲(chǔ)于本地MySQL中。情境三:爬取汽車銷售分頁(yè)數(shù)據(jù)PART02知識(shí)準(zhǔn)備情境三:爬取汽車銷售分頁(yè)數(shù)據(jù)知識(shí)準(zhǔn)備引導(dǎo)問題了解什么是異步網(wǎng)絡(luò)爬蟲,說明異步網(wǎng)絡(luò)爬蟲相關(guān)原理。了解Scrapy是什么框架技術(shù),并理解其優(yōu)勢(shì)。Scrapy框架體系結(jié)構(gòu)及原理是什么?Scrapy如何獲取網(wǎng)頁(yè)源代碼?XPath如何解析網(wǎng)頁(yè)源數(shù)據(jù)?如何本地MySQL結(jié)構(gòu)化存儲(chǔ)數(shù)據(jù)?情境三:爬取汽車銷售分頁(yè)數(shù)據(jù)知識(shí)準(zhǔn)備知識(shí)點(diǎn)介紹ScrapyXPathPyMySQL情境三:爬取汽車銷售分頁(yè)數(shù)據(jù)知識(shí)準(zhǔn)備Scrapy情境三:爬取汽車銷售分頁(yè)數(shù)據(jù)Scrapy框架介紹Scrapy是一種快速的高級(jí)webcrawling和webscraping框架,用于對(duì)網(wǎng)站進(jìn)行爬網(wǎng)并從其頁(yè)面提取結(jié)構(gòu)化數(shù)據(jù)。它可以用于廣泛的用途,從數(shù)據(jù)挖掘到監(jiān)控和自動(dòng)化測(cè)試。Scrapy是一個(gè)應(yīng)用程序框架,用于對(duì)網(wǎng)站進(jìn)行爬行和提取結(jié)構(gòu)化數(shù)據(jù),這些結(jié)構(gòu)化數(shù)據(jù)可用于各種有用的應(yīng)用程序,如數(shù)據(jù)挖掘、信息處理或歷史存檔。盡管Scrapy最初是為webscraping它還可以用于使用API提取數(shù)據(jù)(例如AmazonAssociatesWebServices)或者作為一個(gè)通用的網(wǎng)絡(luò)爬蟲。知識(shí)準(zhǔn)備Scrapy架構(gòu)情境三:爬取汽車銷售分頁(yè)數(shù)據(jù)知識(shí)準(zhǔn)備Scrapy架構(gòu)情境三:爬取汽車銷售分頁(yè)數(shù)據(jù)引擎(ScrapyEngine)調(diào)度器(Scheduler)下載器(Downloader)爬蟲(Spiders)項(xiàng)目管道(ItemPipeline)下載器中間件(DownloaderMiddlewares)爬蟲中間件(SpiderMiddlewares)調(diào)度中間件(SchedulerMiddewares)知識(shí)準(zhǔn)備Scrapy運(yùn)行流程情境三:爬取汽車銷售分頁(yè)數(shù)據(jù)知識(shí)準(zhǔn)備Scrapy環(huán)境安裝情境二:爬取百度搜索結(jié)果數(shù)據(jù)pipinstallScrapypiplist在已安裝列表中顯示了Scrapy2.3.0(具體版本以當(dāng)前實(shí)際為準(zhǔn)),表明版本為2.3.0的Scrapy庫(kù)安裝成功。知識(shí)準(zhǔn)備Scrapy內(nèi)置命令情境二:爬取百度搜索結(jié)果數(shù)據(jù)$scrapystartproject<project_name>[project_dir]$scrapygenspider[-ttemplate]<name><domain>$scrapysettings[options]$scrapyrunspider<spider_file.py>$scrapyshell[url]$crapyfetch<url>$scrap
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度辦公用品銷售折扣及定制服務(wù)合同
- 二零二五年度燃料研發(fā)與專利許可合同
- 二零二五年度股權(quán)代持合同:包含企業(yè)資產(chǎn)重組的綜合性協(xié)議
- 2025年度環(huán)保設(shè)施勞務(wù)分包安全責(zé)任協(xié)議
- 二零二五年度頂管施工安全教育與應(yīng)急預(yù)案制定合同
- 二零二五年度合資企業(yè)股份代持與清算協(xié)議
- 二零二五年度特色餐飲服務(wù)人員勞動(dòng)合同范本
- 二零二五年度地質(zhì)鉆孔施工環(huán)境保護(hù)協(xié)議
- 二零二五年度集體勞動(dòng)合同在民營(yíng)企業(yè)中的創(chuàng)新
- 二零二五年度企業(yè)產(chǎn)品售后服務(wù)宣傳片委托協(xié)議
- 第三方代收款協(xié)議2024年
- 【獨(dú)立儲(chǔ)能】山西省獨(dú)立儲(chǔ)能政策及收益分析-中國(guó)能建
- 2024內(nèi)蒙古中考數(shù)學(xué)二輪專題復(fù)習(xí) 二次函數(shù)與幾何綜合題 類型二 面積問題(課件)
- DL-T5796-2019水電工程邊坡安全監(jiān)測(cè)技術(shù)規(guī)范
- 高等數(shù)學(xué)教案第四章不定積分
- 2024年高考時(shí)事政治考試題庫(kù)(134題)
- 安全生產(chǎn)責(zé)任制考試試卷及答案
- 擠壓模具拋光培訓(xùn)課件
- 大學(xué)生寒假回訪母校社會(huì)實(shí)踐報(bào)告
- 2023年跨境電商年度總結(jié)報(bào)告
- 水磨鉆成本分析
評(píng)論
0/150
提交評(píng)論