版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
項(xiàng)目一
初識動態(tài)網(wǎng)頁數(shù)據(jù)采集與預(yù)處理認(rèn)識大數(shù)據(jù)采集與預(yù)處理目錄Content1搭建數(shù)據(jù)采集與預(yù)處理開發(fā)環(huán)境2數(shù)據(jù)來源較多項(xiàng)目導(dǎo)言零數(shù)據(jù)類型豐富數(shù)據(jù)存儲數(shù)據(jù)處理學(xué)習(xí)目標(biāo)零知識目標(biāo)了解數(shù)據(jù)采集相關(guān)知識;熟悉大數(shù)據(jù)的來源;掌握大數(shù)據(jù)處理相關(guān)知識;精通PyCharm的安裝步驟與掌握PyCharm的使用方法。技能目標(biāo)具備掌握大數(shù)據(jù)采集方法的能力;具備大數(shù)據(jù)預(yù)處理方法的作用能力;具備安裝和使用PyCharm的能力。技能目標(biāo)具備精益求精、堅(jiān)持不懈的精神;具備團(tuán)隊(duì)協(xié)作能力;具備靈活的思維和處理分析問題的能力;具備責(zé)任心。任務(wù)1-1:認(rèn)識大數(shù)據(jù)采集與預(yù)處理壹認(rèn)識數(shù)據(jù)來源任務(wù)技能信息管理系統(tǒng)、網(wǎng)絡(luò)數(shù)據(jù)、機(jī)器和傳感器數(shù)據(jù)、科學(xué)實(shí)驗(yàn)數(shù)據(jù)、交易數(shù)據(jù)、人為數(shù)據(jù)等認(rèn)識大數(shù)據(jù)采集通過技術(shù)手段進(jìn)行數(shù)據(jù)采集。目前,常用的大數(shù)據(jù)采集方式有網(wǎng)絡(luò)爬蟲采集、日志文件采集、商業(yè)工具采集認(rèn)識大數(shù)據(jù)預(yù)處理修整不完整、含噪聲、不一致(的數(shù)據(jù),致使采集到的數(shù)據(jù)大多是不規(guī)則、非結(jié)構(gòu)化的,易受到噪聲(錯誤)、不完整、不一致等問題的影響。任務(wù)1-1:認(rèn)識大數(shù)據(jù)采集與預(yù)處理壹1認(rèn)識數(shù)據(jù)來源維克托和肯尼斯提出大數(shù)據(jù)為巨量資料,是一種海量的、飛速增長的、多樣化的信息資產(chǎn)。(1)信息管理系統(tǒng)任務(wù)1-1:認(rèn)識大數(shù)據(jù)采集與預(yù)處理壹(2)網(wǎng)絡(luò)數(shù)據(jù)移動設(shè)備上的軟件幫助儲存和收集各種數(shù)據(jù)、互聯(lián)網(wǎng)中通過社交系統(tǒng)、社交媒體以及搜索引擎等產(chǎn)生海量數(shù)據(jù)。非結(jié)構(gòu)化數(shù)據(jù)01郵件文檔圖片音頻視頻半結(jié)構(gòu)化數(shù)據(jù)02XMLJSON任務(wù)1-1:認(rèn)識大數(shù)據(jù)采集與預(yù)處理壹(3)物聯(lián)網(wǎng)數(shù)據(jù)
通過傳感器技術(shù)獲取外界的物理、化學(xué)和生物等數(shù)據(jù)信息,在互聯(lián)網(wǎng)的基礎(chǔ)上將網(wǎng)絡(luò)延伸和擴(kuò)展,使其在機(jī)器與機(jī)器之間進(jìn)行信息交換和通信。0102任務(wù)1-1:認(rèn)識大數(shù)據(jù)采集與預(yù)處理壹(4)科學(xué)實(shí)驗(yàn)數(shù)據(jù)實(shí)驗(yàn)數(shù)據(jù)仿真數(shù)據(jù)任務(wù)1-1:認(rèn)識大數(shù)據(jù)采集與預(yù)處理壹(5)交易數(shù)據(jù)儲蓄卡交易電子商務(wù)購物互聯(lián)網(wǎng)交易數(shù)據(jù)電子商務(wù)購物數(shù)據(jù)任務(wù)1-1:認(rèn)識大數(shù)據(jù)采集與預(yù)處理壹2認(rèn)識大數(shù)據(jù)采集
早期,數(shù)據(jù)采集通過人工錄入、調(diào)查問卷、電話隨訪等人工方式實(shí)現(xiàn)。目前,常用的大數(shù)據(jù)采集方式有網(wǎng)絡(luò)爬蟲采集、日志文件采集、商業(yè)工具采集。1.網(wǎng)絡(luò)爬蟲采集通過模擬客戶端(瀏覽器)進(jìn)行網(wǎng)絡(luò)請求獲取網(wǎng)頁中文本數(shù)據(jù)、圖片數(shù)據(jù)、音頻文件、視頻文件等數(shù)據(jù)。任務(wù)1-1:認(rèn)識大數(shù)據(jù)采集與預(yù)處理壹網(wǎng)絡(luò)爬蟲類型通用網(wǎng)絡(luò)爬蟲
可以在整個互聯(lián)網(wǎng)中進(jìn)行目標(biāo)資源的爬取,目標(biāo)爬取數(shù)量巨大,對爬蟲程序的性能有較高要求。增量式網(wǎng)絡(luò)爬蟲
用于對頁面數(shù)據(jù)會不斷變化的頁面進(jìn)行爬取操作,可以爬取網(wǎng)頁中更新的新數(shù)據(jù)。聚焦網(wǎng)絡(luò)爬蟲可以選擇性的在目標(biāo)定位于主題相關(guān)的頁面中爬取特定信息。深層頁面爬蟲深層網(wǎng)頁是大部分內(nèi)容不能通過靜態(tài)鏈獲取的,隱藏在搜索表單后,只有用戶提交一些關(guān)鍵詞才能獲得的Web頁面。例如,用戶注冊登錄前不可見的頁面即為深層頁面。任務(wù)1-1:認(rèn)識大數(shù)據(jù)采集與預(yù)處理壹網(wǎng)絡(luò)爬蟲用途利用網(wǎng)絡(luò)爬蟲獲取網(wǎng)站頁面,網(wǎng)站更新時(shí)獲取頁面信息。通過網(wǎng)絡(luò)爬蟲去其他平臺獲取信息實(shí)現(xiàn)業(yè)務(wù)數(shù)據(jù)的填充,之后即可根據(jù)業(yè)務(wù)需求對數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析。電商平臺中抓取同一商品的價(jià)格,之后即可提供給用戶最實(shí)惠的商品價(jià)格任務(wù)1-1:認(rèn)識大數(shù)據(jù)采集與預(yù)處理壹爬蟲的基本流程任務(wù)1-1:認(rèn)識大數(shù)據(jù)采集與預(yù)處理壹Urllib
Python內(nèi)置的http網(wǎng)絡(luò)爬蟲庫,包含了諸如URL內(nèi)容抓取、HTTP請求發(fā)送、文件讀取等多個操作URL的相關(guān)模塊。Requests
基于Urllib使用Python語音編寫的第三方http庫,采用Apache2Licensed開源協(xié)議開發(fā)。Scrapy單擊此處輸入你的正文,文字是您思想的提煉,為了最終演示發(fā)布的良好效果BeautifulSoup
可以從HTML或XML文件中提取數(shù)據(jù)的Python庫。能夠通過轉(zhuǎn)換器實(shí)現(xiàn)文檔導(dǎo)航,查找,修改文檔。Xpath
可以應(yīng)用在包括數(shù)據(jù)挖掘、信息處理或存儲歷史數(shù)據(jù)等一系列的程序中。任務(wù)1-1:認(rèn)識大數(shù)據(jù)采集與預(yù)處理壹2.日志數(shù)據(jù)采集(1)JS埋點(diǎn)技術(shù)采集日志JS埋點(diǎn)技術(shù)通過在頁面中植入JS代碼實(shí)現(xiàn)日志數(shù)據(jù)的收集,包括用戶點(diǎn)了哪個按鈕、頁面之間的跳轉(zhuǎn)次序、停留時(shí)長等。JS埋點(diǎn)可以在項(xiàng)目開發(fā)過程中手動植入。任務(wù)1-1:認(rèn)識大數(shù)據(jù)采集與預(yù)處理壹(2)Flume組件采集日志可以將大批量的不同數(shù)據(jù)源的日志數(shù)據(jù)聚合、移動到數(shù)據(jù)中心(HDFS)進(jìn)行存儲。任務(wù)1-1:認(rèn)識大數(shù)據(jù)采集與預(yù)處理壹3.商業(yè)工具采集
提供多場景數(shù)據(jù)計(jì)算和分析挖掘的科研基礎(chǔ)環(huán)境,充分結(jié)合行業(yè)課題的相關(guān)數(shù)據(jù),并利用大數(shù)據(jù)技術(shù)深入挖掘分析,滿足行業(yè)大數(shù)據(jù)的科研工作需求。
日志管理工具,能夠?qū)θ罩緮?shù)據(jù)進(jìn)行集中采集和準(zhǔn)時(shí)索引處理,以及簡單易用的搜索方式。
簡單直觀的網(wǎng)頁爬蟲工具,無需編碼即可從許多網(wǎng)站抓取數(shù)據(jù)。任務(wù)1-1:認(rèn)識大數(shù)據(jù)采集與預(yù)處理壹3認(rèn)識大數(shù)據(jù)預(yù)處理目前,常用的數(shù)據(jù)預(yù)處理方式有四種,分別是數(shù)據(jù)清洗、數(shù)據(jù)集成、數(shù)據(jù)變換、數(shù)據(jù)規(guī)約。(1)數(shù)據(jù)清洗通過刪除有缺失數(shù)據(jù)的整行數(shù)據(jù)或刪除有過多缺失數(shù)據(jù)的變量、以業(yè)務(wù)知識或經(jīng)驗(yàn)推測并人工填寫填充缺失、利用計(jì)算(均值、中位數(shù)、眾數(shù)、隨機(jī)數(shù)等)結(jié)果進(jìn)行填充。任務(wù)1-1:認(rèn)識大數(shù)據(jù)采集與預(yù)處理壹3認(rèn)識大數(shù)據(jù)預(yù)處理目前,常用的數(shù)據(jù)預(yù)處理方式有四種,分別是數(shù)據(jù)清洗、數(shù)據(jù)集成、數(shù)據(jù)變換、數(shù)據(jù)規(guī)約。(1)數(shù)據(jù)清洗通過刪除有缺失數(shù)據(jù)的整行數(shù)據(jù)或刪除有過多缺失數(shù)據(jù)的變量、以業(yè)務(wù)知識或經(jīng)驗(yàn)推測并人工填寫填充缺失、利用計(jì)算(均值、中位數(shù)、眾數(shù)、隨機(jī)數(shù)等)結(jié)果進(jìn)行填充。①缺失值清洗任務(wù)1-1:認(rèn)識大數(shù)據(jù)采集與預(yù)處理壹②格式內(nèi)容清洗問題處理方式書寫格式問題內(nèi)容修改,將格式統(tǒng)一出現(xiàn)不存在字符問題以半自動校驗(yàn)半人工方式來找出可能存在的問題的數(shù)據(jù),并去除或修改數(shù)據(jù)中不符合格式的字符數(shù)據(jù)與字段不匹配問題不能直接刪除,需要了解具體問題,再根據(jù)情況選擇清洗方法任務(wù)1-1:認(rèn)識大數(shù)據(jù)采集與預(yù)處理壹③邏輯錯誤清洗問題處理方式重復(fù)數(shù)據(jù)刪除數(shù)值不合理選擇刪除數(shù)據(jù)或按缺失值對數(shù)據(jù)值進(jìn)行處理數(shù)據(jù)沖突先判斷字段與信息,之后在選擇刪除或修改該數(shù)據(jù)任務(wù)1-1:認(rèn)識大數(shù)據(jù)采集與預(yù)處理壹④非需求數(shù)據(jù)清洗非需求數(shù)據(jù)就是在數(shù)據(jù)分析時(shí)沒有可分析的意義或不會被分析的數(shù)據(jù),在數(shù)據(jù)處理操作中,只需將其刪除即可。但需要注意的是,不要把重要字段(如學(xué)生數(shù)據(jù)中的姓名、學(xué)號等)、不確定是否需要字段(如學(xué)生數(shù)據(jù)中的身高、體重等,在成績分析時(shí)并不需要,但在學(xué)生健康情況分析中需要)等刪除。任務(wù)1-1:認(rèn)識大數(shù)據(jù)采集與預(yù)處理壹(2)數(shù)據(jù)集成將互聯(lián)網(wǎng)中多種分布在不同位置的諸如各類XML文檔、HTML文檔、電子郵件、文本文件等結(jié)構(gòu)化、半結(jié)構(gòu)化信息等數(shù)據(jù)源中的數(shù)據(jù)綜合存儲在一個位置。任務(wù)1-1:認(rèn)識大數(shù)據(jù)采集與預(yù)處理壹(3)數(shù)據(jù)規(guī)約方式描述維規(guī)約作用于多維數(shù)組,可以將不需要的整列數(shù)據(jù)刪除實(shí)現(xiàn)數(shù)據(jù)維數(shù)的減少,提高計(jì)算效率數(shù)量規(guī)約通過在原數(shù)據(jù)中選擇替代的、較少的數(shù)據(jù)來減少數(shù)據(jù)量數(shù)據(jù)壓縮作用于存儲空間,在不丟失有用信息的前提下,通過縮減數(shù)據(jù)量或重新組織結(jié)構(gòu)減小數(shù)據(jù)的存儲空間,高其傳輸、存儲和處理效率任務(wù)1-1:認(rèn)識大數(shù)據(jù)采集與預(yù)處理壹(4)數(shù)據(jù)轉(zhuǎn)換方式描述光滑通過回歸、分類等算法去掉數(shù)據(jù)中含有的噪聲屬性構(gòu)造在指定結(jié)構(gòu)的數(shù)據(jù)集中,添加新的屬性,助提高準(zhǔn)確率和對高維數(shù)據(jù)結(jié)構(gòu)的理解規(guī)范化將數(shù)據(jù)集中的數(shù)據(jù)按一定比例進(jìn)行縮放操作,使之落入特定的區(qū)間內(nèi),常用的數(shù)據(jù)規(guī)范化方法有零-均值標(biāo)準(zhǔn)化、歸一化等任務(wù)1-1:認(rèn)識大數(shù)據(jù)采集與預(yù)處理壹2.數(shù)據(jù)預(yù)處理工具Pig使用類似于SQL的面向數(shù)據(jù)流的語言PigLatin,可以在Hadoop中執(zhí)行所有的數(shù)據(jù)處理操作PandasPython的一個數(shù)據(jù)處理模塊,集成了大量的庫和多個標(biāo)準(zhǔn)數(shù)據(jù)模型,主要用于實(shí)現(xiàn)數(shù)據(jù)的處理與分析ELKELK主要用于收集集群日志,從而對日志進(jìn)行有效的處理,主要由ElasticSearch、Logstash和Kiabana三個開源工具組成。任務(wù)1-2:搭建數(shù)據(jù)采集與預(yù)處理開發(fā)環(huán)境貳1認(rèn)識PyCharm編碼協(xié)助;項(xiàng)目代碼導(dǎo)航;代碼分析;Python重構(gòu);支持Django;集成版本控制;圖形頁面調(diào)試器;集成的單元測試。優(yōu)勢任務(wù)1-2:搭建數(shù)據(jù)采集與預(yù)處理開發(fā)環(huán)境貳2安裝PyCharm進(jìn)入PyCharm的官網(wǎng)Step1下載安裝包Step2打開安裝包Step3激活軟件Step6初始化設(shè)置Step5選擇安裝位置Step4任務(wù)1-2:搭建數(shù)據(jù)采集與預(yù)處理開發(fā)環(huán)境貳3使用PyCharm任務(wù)1-2:搭建數(shù)據(jù)采集與預(yù)處理開發(fā)環(huán)境貳快捷鍵描述Ctrl+/行注釋/取消行注釋Ctrl+Alt+L根據(jù)模板格式對代碼格式化Ctrl+Alt+SPyCharm設(shè)置Ctrl+D復(fù)制當(dāng)前行或者所選代碼塊Ctrl+Y刪除光標(biāo)所在位置行Ctrl+F當(dāng)前文件內(nèi)快速查找代碼Ctrl+Shift+F指定文件內(nèi)尋找路徑Ctrl+R當(dāng)前文件內(nèi)代碼替代Ctrl+Shift+R指定文件內(nèi)代碼批量替代Shift+F10運(yùn)行Alt+Shift+F10運(yùn)行指定文件Shift+F9調(diào)試程序Shift+F6重命名F11切換標(biāo)記F5拷貝F6移動創(chuàng)建項(xiàng)目Step1在項(xiàng)目中創(chuàng)建py文件Step2編輯Pyhon代碼Step3運(yùn)行代碼Step4配置Pycharm完成PyCharm中Python環(huán)境的配置并進(jìn)行項(xiàng)目的創(chuàng)建。任務(wù)1-2:搭建數(shù)據(jù)采集與預(yù)處理開發(fā)環(huán)境貳與您共同成長項(xiàng)目二
動態(tài)網(wǎng)頁數(shù)據(jù)采集目錄Content1使用Requests庫完成“浪潮云說”網(wǎng)頁數(shù)據(jù)采集2使用Urllib模塊完成“新聞動態(tài)”網(wǎng)頁數(shù)據(jù)采集項(xiàng)目導(dǎo)言零
在實(shí)際的開發(fā)中,所需數(shù)據(jù)是各種各樣的,雖然在網(wǎng)絡(luò)上有許多開源的數(shù)據(jù)集,但開源的數(shù)據(jù)集不一定符合我們的項(xiàng)目需求,因此項(xiàng)目需要的數(shù)據(jù)集需要主動獲取。數(shù)據(jù)采集是數(shù)據(jù)分析必不可少的一環(huán),這個時(shí)候?qū)W會數(shù)據(jù)采集的方法就顯得尤為重要,本項(xiàng)目將使用Python相關(guān)http請求庫完成網(wǎng)頁數(shù)據(jù)的采集。學(xué)習(xí)目標(biāo)零知識目標(biāo)了解Urllib和Requests庫相關(guān)概念熟悉Urllib和Requests庫的方法掌握Urllib庫中request模塊使用精通動態(tài)網(wǎng)頁數(shù)據(jù)采集的方法技能目標(biāo)具備Urllib庫相關(guān)模塊的使用能力具備安裝Requests庫的能力具備使用Requests庫完成網(wǎng)頁數(shù)據(jù)采集的能力具備精通網(wǎng)頁數(shù)據(jù)采集的能力素養(yǎng)目標(biāo)具備善于發(fā)現(xiàn)和總結(jié)問題能力具備較強(qiáng)的學(xué)習(xí)能力和適應(yīng)能力具備較強(qiáng)的溝通表達(dá)能力任務(wù)2-1:使用Urllib模塊完成“新聞動態(tài)”網(wǎng)頁數(shù)據(jù)采集壹request模塊任務(wù)技能urlopen()、Request()、urlretrieve()error模塊URLError、HTTPErrorparse模塊urlparse()、urljoin()、quote()、unquote()任務(wù)2-1:使用Urllib模塊完成“新聞動態(tài)”網(wǎng)頁數(shù)據(jù)采集壹1request模塊在Urllib庫中,request是一個用于實(shí)現(xiàn)http請求模擬的模塊,能夠完成頁面抓取、Cookie設(shè)置等工作。目前,request模塊包含多個http請求方法。方法描述urlopen()頁面獲取Request()設(shè)置請求的相關(guān)參數(shù)urlretrieve()文件下載任務(wù)2-1:使用Urllib模塊完成“新聞動態(tài)”網(wǎng)頁數(shù)據(jù)采集壹(1)urlopen()urlopen()是request模塊中不可或缺的一種方法,主要用于實(shí)現(xiàn)頁面獲取,通過指定url地址即可向頁面發(fā)送請求,并以HTTPResponse類型的對象作為響應(yīng)將頁面內(nèi)容返回。0102urlopen()方法包含參數(shù)參數(shù)描述url指定目標(biāo)網(wǎng)站的URLdata指定表單數(shù)據(jù),該參數(shù)默認(rèn)為None,此時(shí)urllib使用get方法發(fā)送請求,當(dāng)給參數(shù)賦值后,urllib使用post發(fā)送請求,并在該參數(shù)中攜帶表單信息timeout用來指定請求的等待時(shí)間,若超過指定時(shí)間還沒獲得響應(yīng),則拋出一個異常任務(wù)2-1:使用Urllib模塊完成“新聞動態(tài)”網(wǎng)頁數(shù)據(jù)采集壹
HTTPResponse對象方法方法描述read()獲取數(shù)據(jù)readline()按行獲取數(shù)據(jù)readlines()獲取數(shù)據(jù),并以行列表形式返回getcode()獲取狀態(tài)碼geturl()獲取url路徑decode()數(shù)據(jù)解碼getheaders()獲取http請求頭信息,當(dāng)接收屬性后,會返回頭部信息中屬性對應(yīng)的值任務(wù)2-1:使用Urllib模塊完成“新聞動態(tài)”網(wǎng)頁數(shù)據(jù)采集壹(2)Request()在使用urlopen()方法對頁面進(jìn)行訪問時(shí),并不能對請求方式、請求頭信息等請求參數(shù)進(jìn)行設(shè)置,這時(shí)為了提高urlopen()方法的全面性,request模塊提供了一個Request()方法,能夠通過請求參數(shù)創(chuàng)建Request對象,并將該對象作為urlopen()方法的參數(shù)完成頁面請求。參數(shù)描述url指定目標(biāo)網(wǎng)站的URLdata訪問頁面時(shí)攜帶的數(shù)據(jù)headers請求頭origin_req_host請求方的host名稱或者IP地址unverifiable請求方的請求無法驗(yàn)證method請求方式設(shè)置Request()方法包含參數(shù)任務(wù)2-1:使用Urllib模塊完成“新聞動態(tài)”網(wǎng)頁數(shù)據(jù)采集壹headers參數(shù)包含屬性屬性描述User-Agent操作系統(tǒng)和瀏覽器的名稱和版本accept瀏覽器端可以接受的媒體類型Accept-Encoding編碼方法Accept-Language支持語言method參數(shù)包含屬性GET獲取POST提交HEAD獲取頭部信息PUT提交信息,原信息被覆蓋DELETE提交刪除請求任務(wù)2-1:使用Urllib模塊完成“新聞動態(tài)”網(wǎng)頁數(shù)據(jù)采集壹(3)urlretrieve()通過urlopen()方法,只能獲取頁面中的文本信息,當(dāng)面對圖片文件、音視頻文件、文本文件等內(nèi)容時(shí),request模塊提供了一個urlretrieve()方法,能夠?qū)崿F(xiàn)文件的下載操作。urlretrieve()方法包含參數(shù)參數(shù)描述url文件路徑filename文件名稱reporthook文件訪問的超時(shí)時(shí)間,單位為秒data文件訪問時(shí)攜帶的數(shù)據(jù)任務(wù)2-1:使用Urllib模塊完成“新聞動態(tài)”網(wǎng)頁數(shù)據(jù)采集壹2error模塊在Urllib中,為了避免發(fā)送請求時(shí)出現(xiàn)訪問不到服務(wù)器、訪問被禁止等錯誤,Urllib提供了一個用于定義異常的error模塊。目前,error模塊包含了兩個常用方法。方法描述URLError網(wǎng)絡(luò)地址異常HTTPErrorhttp錯誤異常任務(wù)2-1:使用Urllib模塊完成“新聞動態(tài)”網(wǎng)頁數(shù)據(jù)采集壹(1)URLError在error模塊中,URLError提供了多個URL地址相關(guān)的異常,如URL地址錯誤、網(wǎng)絡(luò)錯誤等,并且在觸發(fā)異常后,可通過“reason”屬性查看引發(fā)異常的原因。URLError的語法格式:from
urllib
import
errortry:......except
error.URLErrorase:e.reason......任務(wù)2-1:使用Urllib模塊完成“新聞動態(tài)”網(wǎng)頁數(shù)據(jù)采集壹(2)HTTPErrorHTTPError與URLError基本相同,不同之處在于HTTPError除了“reason”屬性外,還存在一些其他屬性。HTTPError屬性屬性描述code狀態(tài)碼reason錯誤原因headers響應(yīng)頭任務(wù)2-1:使用Urllib模塊完成“新聞動態(tài)”網(wǎng)頁數(shù)據(jù)采集壹3parse模塊在Urllib中,parse模塊主要用于對指定的URL進(jìn)行操作,如解析URL、合并URL等。parse模塊常用方法方法描述urlparse()URL的解析urljoin()URL的拼接quote()編碼unquote()解碼任務(wù)2-1:使用Urllib模塊完成“新聞動態(tài)”網(wǎng)頁數(shù)據(jù)采集壹(1)urlparse()urlparse()方法用于將接收的URL路徑解析成協(xié)議、域名、路徑、參數(shù)、查詢條件以及錨點(diǎn)等六個部分,并以元組的格式返回,在使用時(shí)urlparse()方法接收三個參數(shù)。參數(shù)描述urlURL地址scheme默認(rèn)協(xié)議allow_fragments是否忽略錨點(diǎn)urlparse()方法參數(shù)任務(wù)2-1:使用Urllib模塊完成“新聞動態(tài)”網(wǎng)頁數(shù)據(jù)采集壹urlparse()的語法格式:fromurllibimportparseparse.urlparse(urlstring,scheme='',allow_fragments=True)urlparse()方法返回結(jié)果包含字段字段描述scheme協(xié)議netloc域名path路徑params參數(shù)query查詢條件fragment錨點(diǎn)任務(wù)2-1:使用Urllib模塊完成“新聞動態(tài)”網(wǎng)頁數(shù)據(jù)采集壹(2)urljoin()urljoin()方法用于URL路徑的連接,在使用時(shí)會接收兩個路徑參數(shù),之后會連接兩個URL路徑,連接時(shí)會使用第一個參數(shù)補(bǔ)齊第二個參數(shù)的缺失部分,當(dāng)兩個參數(shù)均為完整路徑時(shí),則以第二個為主。urljoin()的語法格式:fromurllibimportparseparse.urljoin(url1,url2)任務(wù)2-1:使用Urllib模塊完成“新聞動態(tài)”網(wǎng)頁數(shù)據(jù)采集壹(3)quote()、unquote()quote()和unquote()方法是一對功能相對的方法,其中,quote()方法用于對URL路徑中包含的中文進(jìn)行編碼操作,而unquote()方法則用于對quote()方法編碼后的內(nèi)容執(zhí)行解碼操作。語法格式:fromurllibimportparseparse.quote(url)parse.unquote(url)2-1:任務(wù)實(shí)施壹抓取頁面內(nèi)容輸入網(wǎng)站地址代碼查看工具定位到新聞信息區(qū)域,分析代碼結(jié)構(gòu)創(chuàng)建NewsInformation.py文件讀取Response對象中包含的頁面內(nèi)容通過error模塊的URLError定義網(wǎng)絡(luò)地址異常,將代碼封裝到getHTML函數(shù)中完成新聞動態(tài)頁面數(shù)據(jù)采集任務(wù)2-2:使用Requests庫完成“浪潮云說”網(wǎng)頁數(shù)據(jù)采集貳Requests簡介及安裝任務(wù)技能Requests是一個使用Python編寫的http庫Requests庫主要有pip安裝、wheel安裝和源碼安裝等方式Requests基本使用get()、post()、head()、put()、patch()、delete()Requests高級使用會話對象、文件上傳、超時(shí)設(shè)置、異常處理、證書認(rèn)證、代理設(shè)置任務(wù)2-2:使用Requests庫完成“浪潮云說”網(wǎng)頁數(shù)據(jù)采集貳1Requests簡介及安裝
在Python中,除了上述的Urllib庫外,Requests庫同樣被用于數(shù)據(jù)的采集,Requests是一個使用Python編寫的http庫,基于Urllib建立,為解決Urllib存在的安全缺陷以及代碼冗余等問題而被推出,方便快捷,可以大大減少工作量,完全滿足開發(fā)的需要。任務(wù)2-2:使用Requests庫完成“浪潮云說”網(wǎng)頁數(shù)據(jù)采集貳用wheel方式安裝Requests庫Step1輸入/~gohlke/pythonlibs/進(jìn)入Requests的wheel文件下載地址Step3在命令窗口輸入“pipinstall+wheel文件路徑”Step2單擊指定的文件格式進(jìn)行wheel文件的下載Step4進(jìn)入Python交互式命令行,輸入“importrequests”代碼,沒有出現(xiàn)錯誤說明Requests庫安裝成功任務(wù)2-2:使用Requests庫完成“浪潮云說”網(wǎng)頁數(shù)據(jù)采集貳2Requests基本使用HTTP請求類型類型描述GET向服務(wù)端發(fā)送獲取信息請求POST將數(shù)據(jù)發(fā)送到服務(wù)器以創(chuàng)建或更新資源HEAD向服務(wù)端請求HTTP頭信息PUT向服務(wù)器端發(fā)送數(shù)據(jù),從而更新信息PATCH對已知資源進(jìn)行局部更新DELETE向服務(wù)端發(fā)送刪除資源請求任務(wù)2-2:使用Requests庫完成“浪潮云說”網(wǎng)頁數(shù)據(jù)采集貳Requests庫請求方法方法描述get()獲取HTML網(wǎng)頁的主要方法post()獲取HTML網(wǎng)頁頭信息的方法head()向HTML網(wǎng)頁提交post請求的方法put()向HTML網(wǎng)頁提交PUT請求的方法patch()向HTML網(wǎng)頁提交局部修改請求delete()向HTML頁面提交刪除請求任務(wù)2-2:使用Requests庫完成“浪潮云說”網(wǎng)頁數(shù)據(jù)采集貳(1)get()get()方法包含參數(shù)參數(shù)描述url頁面的URL鏈接paramsURL額外參數(shù),以字典或字節(jié)序列形式作為參數(shù)增加到URL中**kwargs控制訪問的參數(shù)任務(wù)2-2:使用Requests庫完成“浪潮云說”網(wǎng)頁數(shù)據(jù)采集貳**kwargs包含參數(shù)參數(shù)描述data字典、字節(jié)序列或文件對象,作為Request的內(nèi)容jsonJSON格式的數(shù)據(jù),作為Request的內(nèi)容headers字典,HTTP定制頭cookie字典或CooKiJar,作為Request中的cookieauth元祖,支持HTTP認(rèn)證功能files字典類型,作為傳輸文件timeout超時(shí)時(shí)間,秒為單位proxies字典類型,設(shè)定訪問代理服務(wù)器,可以增加登錄認(rèn)證allow_redirects重定向開關(guān)stream獲取內(nèi)容立即下載開關(guān)verity認(rèn)證SSL證書開關(guān)cert本地SSL證書路徑任務(wù)2-2:使用Requests庫完成“浪潮云說”網(wǎng)頁數(shù)據(jù)采集貳Response對象包含屬性屬性描述status_code狀態(tài)碼text字符串形式頁面內(nèi)容content二進(jìn)制形式頁面內(nèi)容encoding從HTTPheader中猜測的響應(yīng)內(nèi)容編碼方式apparent_encoding從內(nèi)容中分析出的響應(yīng)內(nèi)容編碼方式cookies響應(yīng)的cookieurlURL路徑headers請求頭信息任務(wù)2-2:使用Requests庫完成“浪潮云說”網(wǎng)頁數(shù)據(jù)采集貳常用狀態(tài)碼狀態(tài)碼描述200請求成功301請求的文檔在其他地方,新的URL在Location頭中給出,瀏覽器應(yīng)該自動地訪問新的URL400請求有語法錯誤,不能被服務(wù)器所理解401請求未經(jīng)授權(quán)403服務(wù)器收到請求,但是拒絕提供服務(wù)404請求資源不存在500服務(wù)器發(fā)生不可預(yù)期的錯誤503服務(wù)器當(dāng)前不能處理客戶端的請求,一段時(shí)間后可能恢復(fù)正常任務(wù)2-2:使用Requests庫完成“浪潮云說”網(wǎng)頁數(shù)據(jù)采集貳(2)post()post()方法包含參數(shù)參數(shù)描述url頁面的URL鏈接data字典、字節(jié)序列或文件對象,作為Request的內(nèi)容jsonJSON格式的數(shù)據(jù),作為Request的內(nèi)容**kwargs控制訪問的參數(shù)任務(wù)2-2:使用Requests庫完成“浪潮云說”網(wǎng)頁數(shù)據(jù)采集貳(3)head()語法格式:importrequestsrequests.head(url,**kwargs)任務(wù)2-2:使用Requests庫完成“浪潮云說”網(wǎng)頁數(shù)據(jù)采集貳(4)put()語法格式:importrequestsrequests.put(url,data=None,**kwargs)任務(wù)2-2:使用Requests庫完成“浪潮云說”網(wǎng)頁數(shù)據(jù)采集貳(5)patch()語法格式:importrequestsrequests.patch(url,data=None,**kwargs)任務(wù)2-2:使用Requests庫完成“浪潮云說”網(wǎng)頁數(shù)據(jù)采集貳(6)delete()語法格式:importrequestsrequests.delete(url,**kwargs)任務(wù)2-2:使用Requests庫完成“浪潮云說”網(wǎng)頁數(shù)據(jù)采集貳method包含參數(shù)值參數(shù)值描述GET獲取HTML網(wǎng)頁P(yáng)OST獲取HTML網(wǎng)頁頭信息HEAD向HTML網(wǎng)頁提交post請求PUT向HTML網(wǎng)頁提交PUT請求PATCH向HTML網(wǎng)頁提交局部修改請求DELETE向HTML頁面提交刪除請求任務(wù)2-2:使用Requests庫完成“浪潮云說”網(wǎng)頁數(shù)據(jù)采集貳3Requests高級使用會話對象文件上傳異常處理代理設(shè)置超時(shí)設(shè)置證書認(rèn)證任務(wù)2-2:使用Requests庫完成“浪潮云說”網(wǎng)頁數(shù)據(jù)采集貳(1)會話對象會話對象能夠跨請求保持某些參數(shù),也會在同一個Session實(shí)例發(fā)出的所有請求之間保持cookie,除此之外它還可以用來提升網(wǎng)絡(luò)性能。語法格式:importrequestssession=requests.Session()session.get()任務(wù)2-2:使用Requests庫完成“浪潮云說”網(wǎng)頁數(shù)據(jù)采集貳(2)文件上傳
在使用post()方法提交數(shù)據(jù)時(shí),不僅可以提交文本數(shù)據(jù),還可以通過files參數(shù)的設(shè)置提交文件數(shù)據(jù),實(shí)現(xiàn)文件的上傳操作。語法格式:importrequests#獲取文件files={'fi
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《皮外骨傷科病證》課件
- 《俗世奇人》讀后感
- 客戶慰問信15篇
- 行為分析與監(jiān)控-洞察分析
- 虛擬矯形矯正力分析與優(yōu)化研究-洞察分析
- 顏料產(chǎn)品品質(zhì)控制研究-洞察分析
- 臀厚與生殖-洞察分析
- 烏洛托品的毒性研究-洞察分析
- 用戶行為預(yù)測中的隱私保護(hù)-洞察分析
- 數(shù)字支付價(jià)格聯(lián)盟反壟斷研究-洞察分析
- 高速公路瀝青路面設(shè)計(jì)計(jì)算書
- 空調(diào)系統(tǒng)維保記錄表格模板
- QC小組活動管理制度
- 市區(qū)自備井排查整治工作實(shí)施方案
- 8位半萬用表大比拼
- 品牌管理部績效考核指標(biāo)
- 瀝青路面施工監(jiān)理工作細(xì)則
- 公司走賬合同范本
- 獲獎一等獎QC課題PPT課件
- 人教版小學(xué)三年級數(shù)學(xué)上冊判斷題(共3頁)
- 國際項(xiàng)目管理手冊The Project Manager’s Manual
評論
0/150
提交評論