數(shù)據(jù)采集與預(yù)處理PPT全套完整教學(xué)課件_第1頁(yè)
數(shù)據(jù)采集與預(yù)處理PPT全套完整教學(xué)課件_第2頁(yè)
數(shù)據(jù)采集與預(yù)處理PPT全套完整教學(xué)課件_第3頁(yè)
數(shù)據(jù)采集與預(yù)處理PPT全套完整教學(xué)課件_第4頁(yè)
數(shù)據(jù)采集與預(yù)處理PPT全套完整教學(xué)課件_第5頁(yè)
已閱讀5頁(yè),還剩621頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

課程學(xué)習(xí)方法全套PPT課件1課程主要模塊課程簡(jiǎn)介目錄職業(yè)發(fā)展趨勢(shì)2課程學(xué)習(xí)方法3國(guó)內(nèi)大數(shù)據(jù)行業(yè)發(fā)展的如火如荼,作為互聯(lián)網(wǎng)時(shí)代新型的產(chǎn)業(yè),大數(shù)據(jù)行業(yè)其實(shí)是互聯(lián)網(wǎng)和計(jì)算機(jī)結(jié)合的產(chǎn)物,互聯(lián)網(wǎng)實(shí)現(xiàn)了數(shù)據(jù)的網(wǎng)絡(luò)化,計(jì)算機(jī)實(shí)現(xiàn)了數(shù)據(jù)的數(shù)字化,兩者結(jié)合賦予了大數(shù)據(jù)生命力。大數(shù)據(jù)時(shí)代的到來(lái),簡(jiǎn)單的說(shuō)是海量數(shù)據(jù)完美計(jì)算能力結(jié)合的結(jié)果。確切的說(shuō)是移動(dòng)互聯(lián)網(wǎng)、物聯(lián)網(wǎng)產(chǎn)生了海量的數(shù)據(jù),大數(shù)據(jù)計(jì)算技術(shù)完美的解決了海量數(shù)據(jù)的收集、存儲(chǔ)、計(jì)算、分析的問(wèn)題。大數(shù)據(jù)時(shí)代開(kāi)啟人類社會(huì)利用數(shù)據(jù)價(jià)值的另一個(gè)時(shí)代。因大數(shù)據(jù)計(jì)算技術(shù)可以完美地解決海量數(shù)據(jù)的收集、存儲(chǔ)、計(jì)算、分析的問(wèn)題,所以移動(dòng)通信、導(dǎo)航、電商、社交等互聯(lián)網(wǎng)現(xiàn)狀無(wú)一不在推動(dòng)著大數(shù)據(jù)行業(yè)的快速發(fā)展。簡(jiǎn)單來(lái)說(shuō),大數(shù)據(jù)的發(fā)展是因?yàn)榭梢杂匣ヂ?lián)網(wǎng)時(shí)代的剛需。

職業(yè)發(fā)展趨勢(shì)

大數(shù)據(jù)相關(guān)崗位

職業(yè)發(fā)展趨勢(shì)

數(shù)據(jù)分析處理類爬蟲(chóng)、數(shù)據(jù)庫(kù)SQL數(shù)據(jù)分析處理工具、算法爬蟲(chóng)工程師、數(shù)據(jù)專員、數(shù)據(jù)分析師大數(shù)據(jù)系統(tǒng)開(kāi)發(fā)類大數(shù)據(jù)產(chǎn)品生態(tài)圈(平臺(tái))虛擬化技術(shù)、Docker系統(tǒng)開(kāi)發(fā)、系統(tǒng)運(yùn)維、系統(tǒng)架構(gòu)職業(yè)發(fā)展趨勢(shì)語(yǔ)言受歡迎程度IEEESpectrum2020編程語(yǔ)言Top10職業(yè)發(fā)展趨勢(shì)

職業(yè)發(fā)展趨勢(shì)

一個(gè)爬蟲(chóng)工程師的成長(zhǎng)之路/p/112038604職業(yè)發(fā)展趨勢(shì)2職業(yè)發(fā)展趨勢(shì)課程簡(jiǎn)介目錄課程主要模塊1課程考核及學(xué)習(xí)方法3課程主要模塊知識(shí)模塊學(xué)時(shí)第一模塊數(shù)據(jù)采集基礎(chǔ)4第二模塊靜態(tài)網(wǎng)頁(yè)數(shù)據(jù)采集18(實(shí)驗(yàn)8)第三模塊動(dòng)態(tài)網(wǎng)頁(yè)數(shù)據(jù)采集8(實(shí)驗(yàn)2)第四模塊Scrapy框架10(實(shí)驗(yàn)4)第五模塊數(shù)據(jù)清洗pandas6(實(shí)驗(yàn)2)總學(xué)時(shí):48,理論32,實(shí)驗(yàn)16課程主要模塊(1)理解數(shù)據(jù)采集與清洗在大數(shù)據(jù)生命周期的應(yīng)用(2)理解大數(shù)據(jù)環(huán)境下的數(shù)據(jù)采集方法(3)理解爬蟲(chóng)的基本原理(4)掌握Requests庫(kù)的get和post方法(5)掌握selenium庫(kù)的元素查找、元素操縱、窗口切換方法(6)掌握Xpath、BeautifulSoup、CSS選擇器、正則表達(dá)式等解析方法(7)掌握Scrapy框架的基本原理、運(yùn)用BasicSpider和CrawlSpider編寫(xiě)爬蟲(chóng)(8)掌握數(shù)據(jù)的文件,關(guān)系型數(shù)據(jù)庫(kù)的存儲(chǔ)方法(9)掌握Pandas對(duì)采集數(shù)據(jù)進(jìn)行數(shù)據(jù)清洗的方法課程主要模塊工具與設(shè)備:1、筆記本或臺(tái)式電腦2、python開(kāi)發(fā)工具、Pycharm等主流IDE3、MySQL數(shù)據(jù)庫(kù)4、互聯(lián)網(wǎng)環(huán)境周二上理論課,不需要電腦;周五需要帶上自己的筆記本電腦進(jìn)行實(shí)驗(yàn)3職業(yè)發(fā)展趨勢(shì)課程簡(jiǎn)介目錄課程考核及學(xué)習(xí)方法1課程主要模塊2課程考核平時(shí)成績(jī):占50%(課堂表現(xiàn)10,實(shí)驗(yàn)報(bào)告20,章節(jié)測(cè)試20)考試成績(jī):占50%(閉卷理論考試)課堂表現(xiàn)正確回答問(wèn)題+(2~5)分,錯(cuò)誤不扣分;上課不準(zhǔn)玩手機(jī)、睡覺(jué)、說(shuō)話;不能遲到、早退;曠課(3次取消考試資格)學(xué)習(xí)方法課堂上準(zhǔn)備一個(gè)練習(xí)本,針對(duì)重點(diǎn)知識(shí)和案例進(jìn)行課堂練習(xí)認(rèn)真對(duì)待作業(yè),代碼可以在本機(jī)環(huán)境中運(yùn)行,提交到超星平臺(tái)學(xué)會(huì)獨(dú)立思考,嘗試用不同的思路或方法完成案例推薦學(xué)習(xí)網(wǎng)站和教學(xué)資源網(wǎng)絡(luò)爬蟲(chóng)與信息提?。ㄡ蕴欤?course/BIT-1001870001PythonPython數(shù)據(jù)分析與展示(嵩天)/course/BIT-1001870002Python網(wǎng)絡(luò)爬蟲(chóng)程序技術(shù)(黃銳軍

、蔡鐵

、薛國(guó)偉

、吳瑜)/course/ZIIT-1002925008概述1數(shù)據(jù)采集的相關(guān)概念教學(xué)內(nèi)容-數(shù)據(jù)采集基礎(chǔ)數(shù)據(jù)來(lái)源和格式2數(shù)據(jù)清洗的相關(guān)概念3數(shù)據(jù)采集與清洗的流程和場(chǎng)景4概述1數(shù)據(jù)采集的相關(guān)概念教學(xué)內(nèi)容-數(shù)據(jù)采集基礎(chǔ)數(shù)據(jù)來(lái)源和格式2數(shù)據(jù)清洗的相關(guān)概念3數(shù)據(jù)采集與清洗的流程和場(chǎng)景41、理解數(shù)據(jù)什么是數(shù)據(jù)?只要承載了一定的信息,這些數(shù)字、圖片、文本、聲音等都可以認(rèn)為是數(shù)據(jù)。沒(méi)有承載信息的數(shù)字是不能作為數(shù)據(jù)的,認(rèn)識(shí)清楚這個(gè)問(wèn)題,是踏入大數(shù)據(jù)之門的第一步。數(shù)據(jù)從哪里來(lái)?從微觀層面看,我們每個(gè)人都在生產(chǎn)著數(shù)據(jù):早上8點(diǎn),你使用支付寶購(gòu)買了早餐;上午10點(diǎn),你給100086打一次電話咨詢?cè)捹M(fèi)余額;下午六點(diǎn),你乘坐的公共交返回家中。然后,支付寶獲取了你的使用習(xí)慣和消費(fèi)能力,時(shí)時(shí)向你推薦花唄等應(yīng)用;10086獲取了你的咨詢需求,推出了自助話費(fèi)查詢功能;公共交通將你的信息提供給了保險(xiǎn)公司,就有了后來(lái)的“先生/女士,現(xiàn)向你推薦一款公共交通安全險(xiǎn)”

數(shù)據(jù)來(lái)源和格式

數(shù)據(jù)從哪里來(lái)?從宏觀層面看,各種行業(yè)以幾何倍數(shù)爆發(fā)增長(zhǎng)的速度在制造著數(shù)據(jù),比如互聯(lián)網(wǎng)(社交,搜索,電商)、移動(dòng)互聯(lián)網(wǎng)(微博)、物聯(lián)網(wǎng)(傳感器)、醫(yī)學(xué)影像、安全監(jiān)控、金融(銀行,股市,保險(xiǎn))電信(通話,短信)都在瘋狂的產(chǎn)生著數(shù)據(jù),已經(jīng)不能用G或T來(lái)衡量,數(shù)據(jù)量已經(jīng)從TB(1024GB=1TB)級(jí)別躍升到PB(1024TB=1PB)、EB(1024PB=1EB)乃至ZB(1024EB=1ZB)級(jí)別。

數(shù)據(jù)來(lái)源和格式

數(shù)據(jù)來(lái)源和格式2、數(shù)據(jù)來(lái)源數(shù)據(jù)來(lái)源,指的是所得到的數(shù)據(jù)的來(lái)源。數(shù)據(jù)來(lái)源一般有線下調(diào)研和線上搜集兩大類。數(shù)據(jù)來(lái)源和格式2、數(shù)據(jù)來(lái)源網(wǎng)絡(luò)日志傳感器網(wǎng)絡(luò)、社會(huì)網(wǎng)絡(luò)、社會(huì)數(shù)據(jù)互聯(lián)網(wǎng)文本和文件、互聯(lián)網(wǎng)搜索索引天文學(xué)、大氣科學(xué)、生物學(xué)軍事偵查醫(yī)療記錄視頻(監(jiān)控、互聯(lián)網(wǎng)等)、圖片、音頻大規(guī)模電子商務(wù)數(shù)據(jù)來(lái)源和格式3、數(shù)據(jù)格式

數(shù)據(jù)格式(dataformat)是數(shù)據(jù)保存在文件或記錄中的編排格式,可為數(shù)值、字符或二進(jìn)制數(shù)等形式,由數(shù)據(jù)類型及數(shù)據(jù)長(zhǎng)度來(lái)描述。主要的數(shù)據(jù)格式如下:網(wǎng)頁(yè)格式:例.html文件音頻XML格式JSON格式其他數(shù)據(jù)格式數(shù)據(jù)來(lái)源和格式網(wǎng)頁(yè)格式

網(wǎng)頁(yè)的結(jié)構(gòu),是以HTML文檔、JavaScript腳本和CSS樣式單的方式組織。在網(wǎng)頁(yè)上查看源碼可以了解其內(nèi)部結(jié)構(gòu)。網(wǎng)頁(yè)格式——HTML超文本標(biāo)記語(yǔ)言(HTML)是最常見(jiàn)的網(wǎng)頁(yè)數(shù)據(jù),其特點(diǎn):HTML是一種描述性標(biāo)記語(yǔ)言,用來(lái)描述頁(yè)面內(nèi)容的顯示方式;HTML文件是一種純文本文件,以“.html”或“.htm”為后綴。HTML的基本組成單位是元素(<標(biāo)簽>),語(yǔ)法結(jié)構(gòu)如下:常見(jiàn)的標(biāo)簽如下表:

數(shù)據(jù)來(lái)源和格式XMLXML(eXtensibleMarkupLanguage,可擴(kuò)展標(biāo)記語(yǔ)言),標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言的子集,是一種用于標(biāo)記電子文件使其具有結(jié)構(gòu)性的標(biāo)記語(yǔ)言。XML常被設(shè)計(jì)用來(lái)傳輸和存儲(chǔ)數(shù)據(jù)。其特點(diǎn):它是對(duì)超文本標(biāo)記語(yǔ)言的補(bǔ)充,被設(shè)計(jì)用來(lái)傳輸和存儲(chǔ)數(shù)據(jù),其焦點(diǎn)是數(shù)據(jù)的內(nèi)容;自定義標(biāo)記。XML的基本結(jié)構(gòu)也是由標(biāo)簽組成,它則要求所有的標(biāo)簽必須成對(duì)出現(xiàn),并且大小敏感,其語(yǔ)法結(jié)構(gòu)如下:<?xmlversion="1.0"encoding="utf-8"?><標(biāo)簽>

內(nèi)容</標(biāo)簽>數(shù)據(jù)來(lái)源和格式JSONJSON(JavaScriptObjectNotation)是一種輕量級(jí)的數(shù)據(jù)交換格式。JSON格式數(shù)據(jù)易于人閱讀和編寫(xiě),同時(shí)也易于機(jī)器解析和生成(一般用于提升網(wǎng)絡(luò)傳輸速率)。其特點(diǎn)如下:JSON采用完全獨(dú)立于語(yǔ)言的文本格式;方便人的閱讀和編寫(xiě),同時(shí)也易于機(jī)器解析和生成。JSON的語(yǔ)法規(guī)則,表示為鍵值對(duì)的結(jié)構(gòu),鍵值對(duì)之間用冒號(hào)分隔:多個(gè)鍵值對(duì)在一起時(shí),數(shù)據(jù)用逗號(hào)分隔。示例:多個(gè)健值對(duì)數(shù)據(jù){“book_title":"HarryPotter“,"author":"JK.Rowling"}數(shù)據(jù)來(lái)源和格式作為存儲(chǔ)和交換文本信息的語(yǔ)言,與XML的不同的是:數(shù)據(jù)格式簡(jiǎn)單,易于讀寫(xiě),占用帶寬?。荒軌蚴褂肑avaScript內(nèi)建的eval()方法進(jìn)行解析;不使用保留字,無(wú)結(jié)束標(biāo)簽。JSON表示數(shù)據(jù)有兩種結(jié)構(gòu):對(duì)象。用“{}”括起來(lái)的內(nèi)容;數(shù)組。表示為“[]”括起來(lái)的內(nèi)容;{"book":[ {"title":"HarryPotter","author":"JK.Rowling","year":"2005"},{"title":"LearningXML","author":"ErikT.Ray","year":"2003"}]}數(shù)據(jù)來(lái)源和格式其他格式除了網(wǎng)頁(yè)、網(wǎng)頁(yè)格式、JSON格式、XML格式外,網(wǎng)絡(luò)數(shù)據(jù):PDFOffice系列文檔CSVRTF數(shù)據(jù)來(lái)源和格式4、大數(shù)據(jù)的生命周期采集:數(shù)據(jù)收集是做大數(shù)據(jù)的第一步,是利用一種裝置,從系統(tǒng)外部采集數(shù)據(jù)并輸入到系統(tǒng)內(nèi)部的一個(gè)接口。在互聯(lián)網(wǎng)行業(yè)快速發(fā)展的今天,數(shù)據(jù)采集已經(jīng)被廣泛應(yīng)用于互聯(lián)網(wǎng)及分布式領(lǐng)域,比如攝像頭,麥克風(fēng),都是數(shù)據(jù)采集工具。數(shù)據(jù)采集系統(tǒng)整合了信號(hào)、傳感器、激勵(lì)器、信號(hào)調(diào)理、數(shù)據(jù)采集設(shè)備和應(yīng)用軟件。大數(shù)據(jù)生命周期:數(shù)據(jù)采集–>數(shù)據(jù)存儲(chǔ)–>數(shù)據(jù)處理–>數(shù)據(jù)展現(xiàn)(可視化,報(bào)表和監(jiān)控)教學(xué)內(nèi)容2數(shù)據(jù)來(lái)源和格式數(shù)據(jù)采集的相關(guān)概念1數(shù)據(jù)清洗的相關(guān)概念3數(shù)據(jù)采集與清洗的流程和場(chǎng)景4數(shù)據(jù)采集的相關(guān)概念大數(shù)據(jù)時(shí)代,數(shù)據(jù)正在迅速膨脹并變大,數(shù)據(jù)決定著企業(yè)的未來(lái)發(fā)展,隨著時(shí)間的推移,人們逐漸意識(shí)到數(shù)據(jù)對(duì)企業(yè)的重要性。大數(shù)據(jù)時(shí)代對(duì)人類的數(shù)據(jù)駕馭能力提出了新的挑戰(zhàn),也為人們獲得更為深刻、全面的洞察能力提供了前所未有的空間與潛力。數(shù)據(jù)采集的相關(guān)概念1、數(shù)據(jù)采集的發(fā)展歷程20世紀(jì)50年代數(shù)據(jù)采集系統(tǒng)起源20世紀(jì)60年代專業(yè)系統(tǒng)20世紀(jì)70年代采集器誕生20世紀(jì)80年代采集系統(tǒng)處理能力大大加強(qiáng)20世紀(jì)90年代至今應(yīng)用在各行各業(yè)數(shù)據(jù)采集的相關(guān)概念數(shù)據(jù)采集現(xiàn)狀現(xiàn)狀先進(jìn)的高端數(shù)據(jù)采集,還能測(cè)量一些抽象的事物,比如光、溫度、壓力和聲音等,系統(tǒng)還能進(jìn)行自動(dòng)化數(shù)據(jù)分析。在未來(lái)的發(fā)展趨勢(shì)中,全球數(shù)據(jù)采集技術(shù),正在向著微型化、網(wǎng)絡(luò)化和智能化的方向發(fā)展。數(shù)據(jù)采集系統(tǒng)微型化數(shù)據(jù)采集系統(tǒng)網(wǎng)絡(luò)化數(shù)據(jù)采集系統(tǒng)智能化數(shù)據(jù)采集的相關(guān)概念2、數(shù)據(jù)采集方法

大數(shù)據(jù)環(huán)境下數(shù)據(jù)來(lái)源非常豐富且數(shù)據(jù)類型多樣,存儲(chǔ)和分析挖掘的數(shù)據(jù)量龐大,對(duì)數(shù)據(jù)展現(xiàn)的要求較高,并且很看重?cái)?shù)據(jù)處理的高效性和可用性。從采集方法上,大致分為離線采集實(shí)時(shí)采集互聯(lián)網(wǎng)采集其他采集數(shù)據(jù)采集的相關(guān)概念2、數(shù)據(jù)采集方法離線采集工具:ETL在數(shù)據(jù)倉(cāng)庫(kù)的語(yǔ)境下,ETL基本上就是數(shù)據(jù)采集的代表,包括數(shù)據(jù)的抽?。‥xtract)、轉(zhuǎn)換(Transform)和加載(Load)。在轉(zhuǎn)換的過(guò)程中,需要針對(duì)具體的業(yè)務(wù)場(chǎng)景對(duì)數(shù)據(jù)進(jìn)行治理,例如進(jìn)行非法數(shù)據(jù)監(jiān)測(cè)與過(guò)濾、格式轉(zhuǎn)換與數(shù)據(jù)規(guī)范化、數(shù)據(jù)替換、保證數(shù)據(jù)完整性等。數(shù)據(jù)采集的相關(guān)概念數(shù)據(jù)倉(cāng)庫(kù)是決策支持系統(tǒng)和聯(lián)機(jī)分析應(yīng)用數(shù)據(jù)源的結(jié)構(gòu)化數(shù)據(jù)環(huán)境,是一個(gè)面向主題的(SubjectOriented)、集成的(Integrated)、相對(duì)穩(wěn)定的(Non-Volatile)、反映歷史變化(TimeVariant)的數(shù)據(jù)集合,用于支持經(jīng)營(yíng)管理中的決策制定過(guò)程。數(shù)據(jù)庫(kù)和數(shù)據(jù)倉(cāng)庫(kù)區(qū)別?數(shù)據(jù)庫(kù)是面向事務(wù)的設(shè)計(jì),而數(shù)據(jù)倉(cāng)庫(kù)是面向主題設(shè)計(jì)的。數(shù)據(jù)庫(kù)設(shè)計(jì)是盡量避免冗余,一般采用符合范式的規(guī)則來(lái)設(shè)計(jì),數(shù)據(jù)倉(cāng)庫(kù)在設(shè)計(jì)是有意引入冗余,采用反范式的方式來(lái)設(shè)計(jì)。數(shù)據(jù)庫(kù)是為捕獲數(shù)據(jù)而設(shè)計(jì),數(shù)據(jù)倉(cāng)庫(kù)是為分析數(shù)據(jù)而設(shè)計(jì)。數(shù)據(jù)庫(kù)一般存儲(chǔ)在線交易數(shù)據(jù),數(shù)據(jù)倉(cāng)庫(kù)一般存儲(chǔ)的是歷史數(shù)據(jù)。數(shù)據(jù)采集的相關(guān)概念2、數(shù)據(jù)采集方法實(shí)時(shí)采集工具:Flume、Kafka、SparkStreaming實(shí)時(shí)采集主要用在考慮流處理的業(yè)務(wù)場(chǎng)景,比如,用于記錄數(shù)據(jù)源的執(zhí)行的各種操作活動(dòng),比如網(wǎng)絡(luò)監(jiān)控的流量管理、金融應(yīng)用的股票記賬和web服務(wù)器記錄的用戶訪問(wèn)行為。在流處理場(chǎng)景,數(shù)據(jù)采集會(huì)成為Kafka的消費(fèi)者,就像一個(gè)水壩一般將上游源源不斷的數(shù)據(jù)攔截住,然后根據(jù)業(yè)務(wù)場(chǎng)景做對(duì)應(yīng)的處理(例如去重、去噪、中間計(jì)算等),之后再寫(xiě)入到對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)中。這個(gè)過(guò)程類似傳統(tǒng)的ETL,但它是流式的處理方式,而非定時(shí)的批處理Job,些工具均采用分布式架構(gòu),能滿足每秒數(shù)百M(fèi)B的日志數(shù)據(jù)采集和傳輸需求數(shù)據(jù)采集的相關(guān)概念2、數(shù)據(jù)采集方法互聯(lián)網(wǎng)采集工具:Scrapy、pyspider等又被稱為網(wǎng)頁(yè)蜘蛛,網(wǎng)絡(luò)機(jī)器人,是一種按照一定的規(guī)則,自動(dòng)地抓取萬(wàn)維網(wǎng)信息的程序或者腳本,它支持圖片、音頻、視頻等文件或附件的采集。其他數(shù)據(jù)采集方法對(duì)于企業(yè)生產(chǎn)經(jīng)營(yíng)數(shù)據(jù)上的客戶數(shù)據(jù),財(cái)務(wù)數(shù)據(jù)等保密性要求較高的數(shù)據(jù),可以通過(guò)與數(shù)據(jù)技術(shù)服務(wù)商合作,使用特定系統(tǒng)接口等相關(guān)方式采集數(shù)據(jù)。教學(xué)內(nèi)容3數(shù)據(jù)來(lái)源和格式數(shù)據(jù)清洗的相關(guān)概念1數(shù)據(jù)采集的相關(guān)概念2數(shù)據(jù)采集與清洗的流程和場(chǎng)景4數(shù)據(jù)清洗的相關(guān)概念1、臟數(shù)據(jù)

臟數(shù)據(jù)即數(shù)據(jù)不完整有缺失、存在錯(cuò)誤和重復(fù)的數(shù)據(jù),數(shù)據(jù)存在不一致和沖突等缺陷.數(shù)據(jù)清洗的相關(guān)概念2、數(shù)據(jù)清洗定義廣義上,數(shù)據(jù)清洗是將原始數(shù)據(jù)進(jìn)行精簡(jiǎn)以去除冗余和消除不一致,并使剩余的數(shù)據(jù)轉(zhuǎn)換成可接收的標(biāo)準(zhǔn)格式的過(guò)程;狹義上的數(shù)據(jù)清洗特指在構(gòu)建數(shù)據(jù)倉(cāng)庫(kù)和實(shí)現(xiàn)數(shù)據(jù)挖掘前對(duì)數(shù)據(jù)源進(jìn)行處理,使數(shù)據(jù)實(shí)現(xiàn)準(zhǔn)確性、完整性、一致性、唯一性和有效性以適應(yīng)后續(xù)操作的過(guò)程。一般而言,凡是有助于提高信息系統(tǒng)數(shù)據(jù)質(zhì)量的處理過(guò)程,都可認(rèn)為是數(shù)據(jù)清洗數(shù)據(jù)清洗的相關(guān)概念3、數(shù)據(jù)清洗研究現(xiàn)狀國(guó)外研究現(xiàn)狀國(guó)外對(duì)數(shù)據(jù)清洗的研究最早出現(xiàn)在美國(guó),是從對(duì)全美的社會(huì)保險(xiǎn)號(hào)錯(cuò)誤的糾正開(kāi)始。美國(guó)信息業(yè)和商業(yè)的發(fā)展,極大地刺激了對(duì)數(shù)據(jù)清洗技術(shù)的研究,主要集中在以下4個(gè)方面:檢測(cè)并消除數(shù)據(jù)異常檢測(cè)并消除近似重復(fù)記錄數(shù)據(jù)的集成定領(lǐng)域的數(shù)據(jù)清洗數(shù)據(jù)清洗的相關(guān)概念3、數(shù)據(jù)清洗研究現(xiàn)狀國(guó)內(nèi)研究現(xiàn)狀國(guó)內(nèi)對(duì)數(shù)據(jù)清洗技術(shù)的研究還處于初級(jí)階段。直接針對(duì)數(shù)據(jù)清洗,特別是針對(duì)中文數(shù)據(jù)清洗的研究成果并不多。大多是在數(shù)據(jù)倉(cāng)庫(kù)、決策支持、數(shù)據(jù)挖掘研究中,對(duì)其做一些比較簡(jiǎn)單的闡述。銀行、保險(xiǎn)和證券等對(duì)客戶數(shù)據(jù)的準(zhǔn)確性要求很高的行業(yè),都在做各自的客戶數(shù)據(jù)的清洗工作。數(shù)據(jù)清洗的相關(guān)概念數(shù)據(jù)清洗就是對(duì)原始數(shù)據(jù)進(jìn)行重新審查和校驗(yàn)的過(guò)程,目的在于刪除重復(fù)信息、糾正存在的錯(cuò)誤,并使得數(shù)據(jù)保持精確性、完整性、一致性、有效性及唯一性,還可能涉及數(shù)據(jù)的分解和重組,最終將原始數(shù)據(jù)轉(zhuǎn)換為滿足數(shù)據(jù)質(zhì)量或應(yīng)用要求的數(shù)據(jù)4、數(shù)據(jù)清洗目的教學(xué)內(nèi)容4數(shù)據(jù)來(lái)源和格式數(shù)據(jù)采集與清洗的流程和場(chǎng)景1數(shù)據(jù)采集的相關(guān)概念2數(shù)據(jù)清洗的相關(guān)概念3數(shù)據(jù)采集與清洗的流程和場(chǎng)景1、

數(shù)據(jù)采集流程

數(shù)據(jù)采集是為了滿足某種目的進(jìn)行的采集,數(shù)據(jù)采集流程具體表現(xiàn)在以下幾個(gè)方面:目標(biāo)的確定采集內(nèi)容的確定采集范圍的確定采集量的確定其他因素?cái)?shù)據(jù)環(huán)境和數(shù)據(jù)的可獲取性等。采集結(jié)束效果滿意反饋意見(jiàn)采集活動(dòng)開(kāi)始選擇數(shù)據(jù)源采集策略確定采集實(shí)施采集效果評(píng)價(jià)和解釋需求分析具體的采集流程如下:現(xiàn)在各行各業(yè)都在收集自己的相關(guān)數(shù)據(jù),數(shù)據(jù)采集應(yīng)用領(lǐng)域非常廣泛:工業(yè)領(lǐng)域工業(yè)生產(chǎn)中,涉及到多種環(huán)境因素,且這些因素會(huì)影響到產(chǎn)品的生產(chǎn)過(guò)程和參與生產(chǎn)過(guò)程的安全:設(shè)備的電能消耗數(shù)據(jù)采集生產(chǎn)場(chǎng)所的溫濕度、氣壓的數(shù)據(jù)采集農(nóng)業(yè)領(lǐng)域農(nóng)作物生產(chǎn)分不同的階段,不同階段需采集不同的數(shù)據(jù):種植準(zhǔn)備的階段:采集土壤數(shù)據(jù)種植和培育階段:采集溫度、濕度、CO2等數(shù)據(jù)農(nóng)作生長(zhǎng)階段:采集環(huán)境信息、養(yǎng)分信息和病蟲(chóng)情況等數(shù)據(jù)采集與清洗的流程和場(chǎng)景2、

數(shù)據(jù)采集場(chǎng)景

金融領(lǐng)域大數(shù)據(jù)在金融領(lǐng)域的應(yīng)用,一般認(rèn)為有精準(zhǔn)營(yíng)銷和大數(shù)據(jù)風(fēng)控兩個(gè)方面:基于行為數(shù)據(jù)去預(yù)測(cè)用戶的偏好和興趣大數(shù)據(jù)風(fēng)控的兩個(gè)應(yīng)用,信用風(fēng)險(xiǎn)和欺詐風(fēng)險(xiǎn)電商領(lǐng)域網(wǎng)絡(luò)電商平臺(tái)電商APP用戶信息數(shù)據(jù)采集與清洗的流程和場(chǎng)景2、

數(shù)據(jù)采集場(chǎng)景

日志領(lǐng)域:Web日志服務(wù)器日志數(shù)據(jù)庫(kù)日志在數(shù)據(jù)分析的時(shí)候常常會(huì)涉及數(shù)據(jù)清洗,使用場(chǎng)景非常廣泛,例如:工業(yè)領(lǐng)域工業(yè)產(chǎn)生的數(shù)據(jù)非常巨大,采集的數(shù)據(jù)非常多,但是采集的數(shù)據(jù)不一定直接可用,需要進(jìn)一步清洗:機(jī)器運(yùn)行數(shù)據(jù)產(chǎn)品統(tǒng)計(jì)量農(nóng)業(yè)領(lǐng)域農(nóng)產(chǎn)品的產(chǎn)量土壤的數(shù)據(jù)量數(shù)據(jù)采集與清洗的流程和場(chǎng)景3、數(shù)據(jù)清洗場(chǎng)景

健康數(shù)據(jù)身體指標(biāo)血液檢測(cè)指標(biāo)運(yùn)動(dòng)數(shù)據(jù)天氣數(shù)據(jù)氣溫濕度空氣成分?jǐn)?shù)據(jù)采集與清洗的流程和場(chǎng)景3、數(shù)據(jù)清洗場(chǎng)景

電商數(shù)據(jù)用戶信息數(shù)據(jù)商品銷售數(shù)據(jù)網(wǎng)站的瀏覽數(shù)據(jù)小結(jié):大數(shù)據(jù)生命周期數(shù)據(jù)采集方法數(shù)據(jù)清洗目的HTTP基本原理1、常見(jiàn)的數(shù)據(jù)來(lái)源和格式有哪些?2、數(shù)據(jù)采集的常見(jiàn)方法有哪些?知識(shí)回顧1網(wǎng)絡(luò)爬蟲(chóng)分類教學(xué)內(nèi)容-數(shù)據(jù)采集基礎(chǔ)網(wǎng)絡(luò)爬蟲(chóng)的概念2網(wǎng)頁(yè)相關(guān)概念3網(wǎng)絡(luò)爬蟲(chóng)策略41、網(wǎng)絡(luò)爬蟲(chóng)的定義網(wǎng)絡(luò)爬蟲(chóng)(Crawler,又被稱為網(wǎng)頁(yè)蜘蛛--Spider、網(wǎng)絡(luò)機(jī)器人),是一種按照一定的規(guī)則,自動(dòng)地抓取萬(wàn)維網(wǎng)信息的程序或者腳本。網(wǎng)絡(luò)爬蟲(chóng)經(jīng)典的應(yīng)用案例,如Google、百度、Bing(必應(yīng))。

網(wǎng)絡(luò)爬蟲(chóng)的概念

網(wǎng)絡(luò)爬蟲(chóng)的概念及原理

疑問(wèn)【案例1】電影評(píng)價(jià)網(wǎng)站記錄著觀影者對(duì)電影的喜好程度和評(píng)價(jià)信息,通過(guò)對(duì)相關(guān)網(wǎng)站用戶評(píng)價(jià)信息的收集,可以為電影相關(guān)的數(shù)據(jù)的分析和挖掘做支撐,常見(jiàn)的后期應(yīng)用包括:對(duì)電影針對(duì)的用戶群體做分析;獲得大眾娛樂(lè)/輿情熱點(diǎn);電影推薦(廣告推送);……2、網(wǎng)絡(luò)爬蟲(chóng)的作用網(wǎng)絡(luò)爬蟲(chóng)有什么用?網(wǎng)絡(luò)爬蟲(chóng)的概念及原理2、網(wǎng)絡(luò)爬蟲(chóng)的作用網(wǎng)絡(luò)爬蟲(chóng)有什么用?疑問(wèn)【案例2】有一個(gè)銷售電子設(shè)備的店鋪,想要及時(shí)了解競(jìng)爭(zhēng)對(duì)手的價(jià)格。他們可以通過(guò)每天訪問(wèn)電商平臺(tái)或相關(guān)產(chǎn)品網(wǎng)站,與店鋪中出售的電子設(shè)備進(jìn)行價(jià)格對(duì)比。但是,由于店鋪中的電子產(chǎn)品種類繁多,而且希望能夠更加頻繁的查看價(jià)格變化的動(dòng)態(tài),采用傳統(tǒng)手工查詢的方式需要花費(fèi)大量的時(shí)間。網(wǎng)絡(luò)爬蟲(chóng)的概念及原理2、網(wǎng)絡(luò)爬蟲(chóng)的作用網(wǎng)絡(luò)爬蟲(chóng)有什么用?疑問(wèn)【案例3】福州的一家上市公司開(kāi)會(huì)做出股權(quán)轉(zhuǎn)讓決定,剛在官網(wǎng)公告頻道發(fā)布消息,很多內(nèi)部員工還沒(méi)及時(shí)了解到變更信息,國(guó)稅局就立刻找到該上市公司。國(guó)稅稽查人員透露說(shuō)上市公司股權(quán)轉(zhuǎn)讓問(wèn)題越來(lái)越成為稅收征管的熱點(diǎn)和難點(diǎn),國(guó)稅“種植”的網(wǎng)絡(luò)“爬蟲(chóng)”第一時(shí)間監(jiān)測(cè)到該上市公司轉(zhuǎn)讓股權(quán)的消息,于是引起高度重視。網(wǎng)絡(luò)爬蟲(chóng)的概念3、網(wǎng)絡(luò)爬蟲(chóng)的流程為了從萬(wàn)維網(wǎng)大量信息載體中有效地提取數(shù)據(jù),需要采用必要的手段和規(guī)則定向抓取網(wǎng)頁(yè)資源。網(wǎng)絡(luò)爬蟲(chóng)的實(shí)現(xiàn)原理是通過(guò)標(biāo)準(zhǔn)的HTTP協(xié)議,利用超鏈接和Web文檔檢索方法遍歷萬(wàn)維網(wǎng)。網(wǎng)絡(luò)爬蟲(chóng)是搜索引擎的重要組成部分,它作為一個(gè)功能強(qiáng)大的自動(dòng)提取網(wǎng)頁(yè)程序,為搜索引擎從萬(wàn)維網(wǎng)上下載網(wǎng)頁(yè)。注意互聯(lián)網(wǎng)網(wǎng)絡(luò)爬蟲(chóng)模塊最終用戶用戶查詢模塊索引模塊網(wǎng)頁(yè)庫(kù)索引庫(kù)2網(wǎng)絡(luò)爬蟲(chóng)的概念教學(xué)內(nèi)容-數(shù)據(jù)采集基礎(chǔ)網(wǎng)絡(luò)爬蟲(chóng)的分類1網(wǎng)頁(yè)相關(guān)概念3網(wǎng)絡(luò)爬蟲(chóng)策略4網(wǎng)絡(luò)爬蟲(chóng)的分類網(wǎng)絡(luò)爬蟲(chóng)按照系統(tǒng)結(jié)構(gòu)和實(shí)現(xiàn)技術(shù),大致可以分為以下幾種類型。通用網(wǎng)絡(luò)爬蟲(chóng)(GeneralPurposeWebCrawler)聚焦網(wǎng)絡(luò)爬蟲(chóng)(FocusedWebCrawler)增量式網(wǎng)絡(luò)爬蟲(chóng)(IncrementalWebCrawler)深層網(wǎng)絡(luò)爬蟲(chóng)(DeepWebCrawler)實(shí)際的網(wǎng)絡(luò)爬蟲(chóng)系統(tǒng)通常是幾種爬蟲(chóng)技術(shù)相結(jié)合實(shí)現(xiàn)的。網(wǎng)絡(luò)爬蟲(chóng)的分類1、通用網(wǎng)絡(luò)爬蟲(chóng)(GeneralPurposeWebCrawler)原理:通用網(wǎng)絡(luò)爬蟲(chóng)又稱全網(wǎng)爬蟲(chóng)(ScalableWebCrawler),爬行對(duì)象從一些種子URL擴(kuò)充到整個(gè)Web,主要為門戶站點(diǎn)搜索引擎和大型Web服務(wù)提供商采集數(shù)據(jù)。結(jié)構(gòu):分為頁(yè)面爬行模塊、頁(yè)面分析模塊、鏈接過(guò)濾模塊、頁(yè)面數(shù)據(jù)庫(kù)、URL隊(duì)列、初始URL集合幾個(gè)部分。爬行策略:深度優(yōu)先策略、廣度優(yōu)先策略。

網(wǎng)絡(luò)爬蟲(chóng)的分類2、聚焦網(wǎng)絡(luò)爬蟲(chóng)(FocusedWebCrawler)原理:聚焦網(wǎng)絡(luò)爬蟲(chóng)(FocusedCrawler),又稱主題網(wǎng)絡(luò)爬蟲(chóng)(TopicalCrawler),是指選擇性地爬行那些與預(yù)先定義好的主題相關(guān)頁(yè)面的網(wǎng)絡(luò)爬蟲(chóng)。結(jié)構(gòu):分為頁(yè)面爬行模塊、頁(yè)面分析模塊、鏈接過(guò)濾模塊、頁(yè)面數(shù)據(jù)庫(kù)、URL隊(duì)列、初始URL集合、鏈接評(píng)價(jià)模塊以及內(nèi)容評(píng)價(jià)模塊幾個(gè)部分。爬行策略:基于內(nèi)容評(píng)價(jià)的爬行策略、基于鏈接結(jié)構(gòu)評(píng)價(jià)的爬行策略、基于增強(qiáng)學(xué)習(xí)的爬行策略、 基于語(yǔ)境圖的爬行策略。

網(wǎng)絡(luò)爬蟲(chóng)的分類3、增量式網(wǎng)絡(luò)爬蟲(chóng)(IncrementalWebCrawler)原理:增量式網(wǎng)絡(luò)爬蟲(chóng)(IncrementalWebCrawler)是指對(duì)已下載網(wǎng)頁(yè)采取增量式更新和只爬行新產(chǎn)生的或者已經(jīng)發(fā)生變化網(wǎng)頁(yè)的爬蟲(chóng),它能夠在一定程度上保證所爬行的頁(yè)面是盡可能新的頁(yè)面。結(jié)構(gòu):包含爬行模塊、排序模塊、更新模塊、本地頁(yè)面集、待爬行URL集以及本地頁(yè)面URL集。爬行策略:統(tǒng)一更新法、個(gè)體更新法、基于分類的更新法(保持本地頁(yè)面集中存儲(chǔ)的頁(yè)面為最新頁(yè)面);廣度優(yōu)先策略、PageRank優(yōu)先策略等(提高本地頁(yè)面集中頁(yè)面的質(zhì)量)。

網(wǎng)絡(luò)爬蟲(chóng)的分類4、深層網(wǎng)絡(luò)爬蟲(chóng)(DeepWebCrawler)原理:DeepWeb是那些大部分內(nèi)容不能通過(guò)靜態(tài)鏈接獲取的、隱藏在搜索表單后的,只有用戶提交一些關(guān)鍵詞才能獲得的Web頁(yè)面。結(jié)構(gòu):包含六個(gè)基本功能模塊(爬行控制器、解析器、表單分析器、表單處理器、響應(yīng)分析器、LVS控制器)和兩個(gè)爬蟲(chóng)內(nèi)部數(shù)據(jù)結(jié)構(gòu)(URL列表、LVS表)。爬行策略:DeepWeb爬蟲(chóng)爬行過(guò)程中最重要部分就是表單填寫(xiě),包含兩種類型:基于領(lǐng)域知識(shí)的表單填寫(xiě)、基于網(wǎng)頁(yè)結(jié)構(gòu)分析的表單填寫(xiě)。3網(wǎng)絡(luò)爬蟲(chóng)的概念教學(xué)內(nèi)容-數(shù)據(jù)采集基礎(chǔ)網(wǎng)頁(yè)相關(guān)概念1網(wǎng)絡(luò)爬蟲(chóng)的分類2網(wǎng)絡(luò)爬蟲(chóng)策略4網(wǎng)頁(yè)相關(guān)概念1、HTTP基本原理HTTP的基本原理,主要包括以下內(nèi)容:URI和URL超文本HTTP和HTTPSHTTP請(qǐng)求過(guò)程請(qǐng)求響應(yīng)網(wǎng)頁(yè)相關(guān)概念1、HTTP基本原理URI概述統(tǒng)一資源標(biāo)識(shí)符(UniformResourceIdentifier,URI)是一個(gè)用于標(biāo)識(shí)某一互聯(lián)網(wǎng)資源名稱的字符串。該種標(biāo)識(shí)允許用戶對(duì)任何(包括本地和互聯(lián)網(wǎng))的資源通過(guò)特定的協(xié)議進(jìn)行交互操作。統(tǒng)一資源定位符(UniformResourceLocator,URL)、統(tǒng)一資源名稱(UniformResourceName,URN)是URI的子集?,F(xiàn)在互聯(lián)網(wǎng)中,URN用的非常少,幾乎所有的URI都是URL,一般的網(wǎng)頁(yè)鏈接既可以稱為URL,也可以稱為URI。注意URL概述URL(UniformResourceLocator,統(tǒng)一資源定位符)是對(duì)可以從互聯(lián)網(wǎng)上得到的資源的位置和訪問(wèn)方法的一種簡(jiǎn)潔的表示,是互聯(lián)網(wǎng)上標(biāo)準(zhǔn)資源的地址。互聯(lián)網(wǎng)上的每個(gè)文件都有一個(gè)唯一的URL,它包含的信息指出文件的位置以及瀏覽器應(yīng)該怎么處理它。網(wǎng)頁(yè)相關(guān)概念1、HTTP基本原理URL概述URL采用一種統(tǒng)一的格式來(lái)描述各種信息資源,包括文件、服務(wù)器的地址和目錄等。URL的格式由三部分組成:第一部分是協(xié)議;第二部分是存有該資源的主機(jī)IP地址(有時(shí)也包括端口號(hào));第三部分是主機(jī)資源的具體地址,如目錄和文件名等。https

:///home.php

協(xié)議

服務(wù)器主機(jī)名或IP地址路徑和資源文件名網(wǎng)頁(yè)相關(guān)概念1、HTTP基本原理URL概述依據(jù)URL定義,給出了常用的兩種URL協(xié)議的示例:示例:HTTPS協(xié)議的URL解釋:其計(jì)算機(jī)域名為

。超文本文件是在目錄/home下的index.mooc。示例:文件的URL

解釋:上面這個(gè)URL代表存放在主機(jī)

上的pub/files/目錄下的一個(gè)文件,文件名是foobar.txt。/home/index.moocfile:///pub/files/foobar.txt網(wǎng)頁(yè)相關(guān)概念1、HTTP基本原理URL概述完整的帶有授權(quán)的普通URL語(yǔ)法描述如下:URL中的端口號(hào)用來(lái)區(qū)分在同一個(gè)主機(jī)上的不同服務(wù),其編號(hào)范圍從0到65535。HTTP默認(rèn)端口號(hào)為80,指定URL時(shí)可以省略。如前述【示例】HTTP協(xié)議的URL帶端口號(hào)的表達(dá)形式:協(xié)議://用戶名:密碼@子域名.域名.頂級(jí)域名:端口號(hào)/目錄/文件名.文件后綴?參數(shù)=值#標(biāo)志協(xié)議或服務(wù)默認(rèn)端口號(hào)HTTP80FTP21telnet23SMTP25MySQL3306:80/home/index.mooc網(wǎng)頁(yè)相關(guān)概念1、HTTP基本原理超文本超文本(HyperText,HT)是由信息結(jié)點(diǎn)和表示信息結(jié)點(diǎn)間相關(guān)性的鏈構(gòu)成的一個(gè)具有一定邏輯結(jié)構(gòu)和語(yǔ)義的網(wǎng)絡(luò)。超文本是由節(jié)點(diǎn)(Node)和鏈(Link)構(gòu)成的信息網(wǎng)絡(luò)。節(jié)點(diǎn)是表達(dá)信息的單位,通常表示一個(gè)單一的概念或圍繞一個(gè)特殊主題組織起來(lái)的數(shù)據(jù)集合。節(jié)點(diǎn)的內(nèi)容可是文本、圖形、圖像、動(dòng)畫(huà)、音頻、視頻等,也可以是一般計(jì)算機(jī)程序。鏈?zhǔn)枪潭ü?jié)點(diǎn)間的信息聯(lián)系,它以某種形式將一個(gè)節(jié)點(diǎn)與其他節(jié)點(diǎn)連接起來(lái)。由于超文本沒(méi)有規(guī)定鏈的規(guī)范與形式,因此,超文本與超媒體系統(tǒng)的鏈也是各異的,信息間的聯(lián)系豐富多彩引起鏈的種類復(fù)雜多樣。但最終達(dá)到效果卻是一致的,即建立起節(jié)點(diǎn)之間的聯(lián)系。瀏覽器中的網(wǎng)頁(yè)就是通過(guò)超文本解析而成的,網(wǎng)頁(yè)源代碼是一系列HTML代碼,包括一系列標(biāo)簽:img(顯示圖片)、p(指定顯示段落)等。瀏覽器通過(guò)解析一系列標(biāo)簽,便形成了可觀看的網(wǎng)頁(yè),網(wǎng)頁(yè)的源代碼HTML就可稱作超文本。網(wǎng)頁(yè)相關(guān)概念HTTP和HTTPSHTTP協(xié)議(HyperTextTransferProtocol,超文本傳輸協(xié)議)是因特網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)傳輸協(xié)議,所有的WWW文件都必須遵守這個(gè)標(biāo)準(zhǔn)。HTTP是一個(gè)基于TCP/IP通信協(xié)議來(lái)傳遞數(shù)據(jù)(HTML文件、圖片文件、查詢結(jié)果等)。HTTPS(HyperTextTransferProtocoloverSecureSocketLayer),是以安全為目標(biāo)的HTTP通道,在HTTP的基礎(chǔ)上通過(guò)傳輸加密和身份認(rèn)證保證了傳輸過(guò)程的安全性。HTTPS在HTTP的基礎(chǔ)下加入SSL層,HTTPS的安全基礎(chǔ)是SSL,因此加密的詳細(xì)內(nèi)容就需要SSL。HTTPS存在不同于HTTP的默認(rèn)端口(端口為443)及一個(gè)加密/身份驗(yàn)證層(在HTTP與TCP之間)。1、HTTP基本原理網(wǎng)頁(yè)相關(guān)概念HTTP和HTTPSHTTPS的安全基礎(chǔ)是SSL,通過(guò)它傳輸?shù)膬?nèi)容都是經(jīng)過(guò)SSL加密,它的主要作用可以分為以下兩種:建立一個(gè)信息安全通道來(lái)保證數(shù)據(jù)傳輸?shù)陌踩淮_認(rèn)網(wǎng)站的真實(shí)性,凡是使用了HTTPS的網(wǎng)站,都可以通過(guò)點(diǎn)擊瀏覽器地址欄的鎖頭標(biāo)志來(lái)查看網(wǎng)站認(rèn)證之后的真實(shí)信息,也可以通過(guò)CA機(jī)構(gòu)頒發(fā)的安全簽章來(lái)查詢。HTTP請(qǐng)求過(guò)程可分為以下幾個(gè)部分:1.建立TCP連接;2.瀏覽器向服務(wù)器發(fā)送請(qǐng)求命令;3.服務(wù)器應(yīng)答;4.服務(wù)器關(guān)閉TCP連接;5.瀏覽器接受到服務(wù)器響應(yīng)的數(shù)據(jù)。1、HTTP基本原理網(wǎng)頁(yè)相關(guān)概念1、HTTP基本原理HTTP和HTTPS1.建立TCP連接在HTTP工作開(kāi)始之前,Web瀏覽器首先要通過(guò)網(wǎng)絡(luò)與Web服務(wù)器建立連接,該連接是通過(guò)TCP來(lái)完成的,該協(xié)議與IP協(xié)議共同構(gòu)建Internet,即著名的TCP/IP協(xié)議,因此Internet又被稱作是TCP/IP網(wǎng)絡(luò)。2.Web瀏覽器向Web服務(wù)器發(fā)送請(qǐng)求命令建立TCP連接后,Web瀏覽器會(huì)向Web服務(wù)器發(fā)送請(qǐng)求命令。3.Web服務(wù)器應(yīng)答客戶機(jī)向服務(wù)器發(fā)出請(qǐng)求后,服務(wù)器會(huì)向客戶機(jī)進(jìn)行應(yīng)答,應(yīng)答內(nèi)容包括:協(xié)議的版本號(hào)和應(yīng)答狀態(tài)碼(HTTP/1.1200OK),響應(yīng)頭信息來(lái)記錄服務(wù)器自己的數(shù)據(jù),被請(qǐng)求的文檔內(nèi)容。網(wǎng)頁(yè)相關(guān)概念4.Web服務(wù)器關(guān)閉TCP鏈接一旦Web服務(wù)器向?yàn)g覽器發(fā)送了請(qǐng)求的數(shù)據(jù),它就要關(guān)閉TCP連接;但如果瀏覽器或者服務(wù)器在其頭信息加入了這行代碼:Connection:keep-alive,TCP連接在發(fā)送后將仍然保持打開(kāi)狀態(tài),瀏覽器可以繼續(xù)通過(guò)相同的連接發(fā)送請(qǐng)求。5.瀏覽器接受到服務(wù)器響應(yīng)的數(shù)據(jù)瀏覽器接受服務(wù)器應(yīng)答回來(lái)的HTML代碼、CSS、JS代碼,再進(jìn)行頁(yè)面的渲染或者接受到應(yīng)答的文件進(jìn)行保存等操作。1、HTTP基本原理網(wǎng)頁(yè)相關(guān)概念請(qǐng)求方式在客戶機(jī)和服務(wù)器之間進(jìn)行請(qǐng)求響應(yīng)時(shí),兩種最常被用到的方式是GET和POST:GET-從指定的資源請(qǐng)求數(shù)據(jù)。POST-向指定的資源提交要被處理的數(shù)據(jù)。

GET方式查詢字符串(名稱/值對(duì))是在GET請(qǐng)求的URL中發(fā)送的:

POST

方式查詢字符串(名稱/值對(duì))是在POST請(qǐng)求的HTTP消息主體中發(fā)送的:/test/demo_form.asp?name1=value1&name2=value2POST/test/demo_form.aspHTTP/1.1Host:name1=value1&name2=value21、HTTP基本原理網(wǎng)頁(yè)相關(guān)概念請(qǐng)求方式除了GET和POST方式,還有其他的請(qǐng)求方式:HEAD-類似于GET請(qǐng)求,只不過(guò)返回的響應(yīng)中沒(méi)有具體的內(nèi)容,用于獲取報(bào)頭;PUT-從客戶端向服務(wù)器傳送的數(shù)據(jù)取代指定的文檔的內(nèi);DELETE-請(qǐng)求服務(wù)器刪除指定的頁(yè)面;CONNECT-HTTP/1.1協(xié)議中預(yù)留給能夠?qū)⑦B接改為管道方式的代理服務(wù)器;OPTIONS-允許客戶端查看服務(wù)器的性能;TRACE-回顯服務(wù)器收到的請(qǐng)求,主要用于測(cè)試或診斷;PATCH-是對(duì)PUT方法的補(bǔ)充,用來(lái)對(duì)已知資源進(jìn)行局部更新。1、HTTP基本原理網(wǎng)頁(yè)相關(guān)概念1、HTTP基本原理響應(yīng)響應(yīng),由服務(wù)端返回給客戶端,可分為四部分:響應(yīng)狀態(tài)碼(ResponseStatusCode)響應(yīng)頭(ResponseHeaders)空行響應(yīng)體(ResponseBody)1響應(yīng)狀態(tài)碼2響應(yīng)頭3空行4響應(yīng)體網(wǎng)頁(yè)相關(guān)概念1、HTTP基本原理響應(yīng)響應(yīng)狀態(tài)碼HTTP狀態(tài)碼表示HTTP協(xié)議所返回的響應(yīng)的狀態(tài)。HTTP狀態(tài)碼通常分為5種類型,分別以1~5五個(gè)數(shù)字開(kāi)頭,由3位整數(shù)組成:

1XX表示消息;2XX表示成功;3XX表示重定向;4XX表示請(qǐng)求錯(cuò)誤;5XX表示服務(wù)器錯(cuò)誤;命令功能處理方式200請(qǐng)求成功獲得響應(yīng)內(nèi)容,進(jìn)行處理201請(qǐng)求完成,結(jié)果是創(chuàng)建了新資源爬蟲(chóng)中不會(huì)遇到202請(qǐng)求被接受,但處理尚未完成阻塞等待204服務(wù)器端已經(jīng)實(shí)現(xiàn)了請(qǐng)求,但是沒(méi)有返回新的信息丟棄300存在多個(gè)可用的被請(qǐng)求資源若程序中能夠處理,則進(jìn)行進(jìn)一步處理,如果程序中不能處理,則丟棄301請(qǐng)求到的資源都會(huì)分配一個(gè)永久的URL,這樣就可以在將來(lái)通過(guò)該URL來(lái)訪問(wèn)此資源重定向到分配的URL302請(qǐng)求到資源在一個(gè)不同的URL處臨時(shí)保存重定向到臨時(shí)的URL命令功能處理方式304請(qǐng)求的資源未更新丟棄400非法請(qǐng)求丟棄401未授權(quán)丟棄403禁止丟棄404沒(méi)有找到丟棄500服務(wù)器出現(xiàn)錯(cuò)誤丟棄常見(jiàn)狀態(tài)碼及爬蟲(chóng)處理方式:網(wǎng)頁(yè)相關(guān)概念1、HTTP基本原理響應(yīng)響應(yīng)頭響應(yīng)頭包含了服務(wù)器對(duì)請(qǐng)求的應(yīng)答信息,常見(jiàn)的響應(yīng)頭如下:Allow:服務(wù)器支持哪些請(qǐng)求方法(如GET、POST等);Content-Type:表示后面的文檔屬于什么類型。Servlet默認(rèn)為text/plain,但通常需要顯式地指定為text/html;Date:當(dāng)前的GMT時(shí)間;Location:表示客戶應(yīng)當(dāng)?shù)侥睦锶ヌ崛∥臋n;Refresh:表示瀏覽器應(yīng)該在多少時(shí)間之后刷新文檔,以秒計(jì);Server:服務(wù)器名字,Servlet一般不設(shè)置這個(gè)值,而是由Web服務(wù)器自己設(shè)置;Set-Cookie:設(shè)置和頁(yè)面關(guān)聯(lián)的Cookie;

網(wǎng)頁(yè)相關(guān)概念1、HTTP基本原理響應(yīng)空行作為內(nèi)容分割,表示以下不再是響應(yīng)頭的內(nèi)容。響應(yīng)體響應(yīng)頭是服務(wù)器返回給客戶端的文本信息,響應(yīng)的正文數(shù)據(jù)在響應(yīng)體中;比如請(qǐng)求網(wǎng)頁(yè)時(shí),它的響應(yīng)體就是網(wǎng)頁(yè)的HTML代碼;爬蟲(chóng)請(qǐng)求網(wǎng)頁(yè)后,要解析的內(nèi)容就是響應(yīng)體。響應(yīng)體網(wǎng)頁(yè)相關(guān)概念2、網(wǎng)頁(yè)基礎(chǔ)瀏覽器訪問(wèn)網(wǎng)站時(shí),頁(yè)面各不相同,現(xiàn)在介紹一下網(wǎng)頁(yè)的基本組成、結(jié)構(gòu)和節(jié)點(diǎn)等內(nèi)容,具體內(nèi)容如下:網(wǎng)頁(yè)的組成節(jié)點(diǎn)數(shù)及節(jié)點(diǎn)的關(guān)系選擇器網(wǎng)頁(yè)相關(guān)概念2、網(wǎng)頁(yè)基礎(chǔ)網(wǎng)頁(yè)組成網(wǎng)頁(yè)的是以HTML文檔、JavaScript腳本和CSS樣式單的方式組織。在網(wǎng)頁(yè)上查看源碼可以了解其內(nèi)部結(jié)構(gòu)。網(wǎng)頁(yè)相關(guān)概念2、網(wǎng)頁(yè)基礎(chǔ)節(jié)點(diǎn)樹(shù)及節(jié)點(diǎn)間的關(guān)系HTMLDOM將HTML文檔視作樹(shù)結(jié)構(gòu),這種結(jié)構(gòu)被稱為節(jié)點(diǎn)樹(shù),如下圖所示:通過(guò)HTMLDOM,樹(shù)中的所有節(jié)點(diǎn)均可通過(guò)JavaScript進(jìn)行訪問(wèn)。所有HTML元素(節(jié)點(diǎn))均可被修改,也可以創(chuàng)建或刪除節(jié)點(diǎn)。網(wǎng)頁(yè)相關(guān)概念2、網(wǎng)頁(yè)基礎(chǔ)節(jié)點(diǎn)樹(shù)及節(jié)點(diǎn)間的關(guān)系節(jié)點(diǎn)樹(shù)中的節(jié)點(diǎn)彼此擁有層級(jí)關(guān)系。父(parent)、子(child)和同胞(sibling)等術(shù)語(yǔ)用于描述這些關(guān)系。父節(jié)點(diǎn)擁有子節(jié)點(diǎn),同級(jí)的子節(jié)點(diǎn)被稱為同胞(兄弟或姐妹):在節(jié)點(diǎn)樹(shù)中,頂端節(jié)點(diǎn)被稱為根(root);每個(gè)節(jié)點(diǎn)都有父節(jié)點(diǎn)、除了根(它沒(méi)有父節(jié)點(diǎn));一個(gè)節(jié)點(diǎn)可擁有任意數(shù)量的子;同胞是擁有相同父節(jié)點(diǎn)的節(jié)點(diǎn)。下面的圖片展示了節(jié)點(diǎn)樹(shù)的一部分,以及節(jié)點(diǎn)之間的關(guān)系:網(wǎng)頁(yè)相關(guān)概念2、網(wǎng)頁(yè)基礎(chǔ)選擇器網(wǎng)頁(yè)由一個(gè)個(gè)節(jié)點(diǎn)組成,CSS選擇器依據(jù)不同的節(jié)點(diǎn)設(shè)置不同的樣式規(guī)則。在CSS中,使用選擇器來(lái)定位節(jié)點(diǎn)。CSS選擇器常見(jiàn)的的語(yǔ)法規(guī)則如下:選擇器示例示例說(shuō)明.ro選擇所有class="intro"的元素#id#firstname選擇所有id="firstname"的元素**選擇所有元素elementp選擇所有<p>元素element,elementdiv,p選擇所有<div>元素和<p>元素elementelementdivp選擇<div>元素內(nèi)的所有<p>元素element>elementdiv>p選擇所有父級(jí)是<div>元素的<p>元素element+elementdiv+p選擇所有緊接著<div>元素之后的<p>元素[attribute][target]選擇所有帶有target屬性元素:linka:link選擇所有未訪問(wèn)鏈接:visiteda:visited選擇所有訪問(wèn)過(guò)的鏈接:first-letterp:first-letter選擇每一個(gè)<p>元素的第一個(gè)字母4網(wǎng)絡(luò)爬蟲(chóng)的概念教學(xué)內(nèi)容-數(shù)據(jù)采集基礎(chǔ)網(wǎng)絡(luò)爬蟲(chóng)策略1網(wǎng)絡(luò)爬蟲(chóng)的分類2網(wǎng)頁(yè)相關(guān)概念3網(wǎng)絡(luò)爬蟲(chóng)策略互聯(lián)網(wǎng)可以看成一個(gè)超級(jí)大的“圖”,而每個(gè)頁(yè)面可以看做是一個(gè)“節(jié)點(diǎn)”,頁(yè)面中的鏈接可以看成是圖的“有向邊”,能夠通過(guò)圖的遍歷方式對(duì)互聯(lián)網(wǎng)這個(gè)超級(jí)大“圖”進(jìn)行訪問(wèn)。依據(jù)互聯(lián)網(wǎng)的特性,互聯(lián)網(wǎng)遍歷有以下幾種:寬(廣)度優(yōu)先遍歷深度優(yōu)先遍歷帶偏好的爬蟲(chóng)網(wǎng)絡(luò)爬蟲(chóng)策略1、

圖的寬度優(yōu)先遍歷圖的寬度優(yōu)先遍歷(BFS)算法是一個(gè)分層搜索的過(guò)程,和樹(shù)的層序遍歷算法相同。圖中一個(gè)節(jié)點(diǎn),作為起始節(jié)點(diǎn),然后按照層次遍歷的方式,一層一層地進(jìn)行訪問(wèn)。依據(jù)互聯(lián)網(wǎng)的特性,互聯(lián)網(wǎng)遍歷過(guò)程如下:1.頂點(diǎn)V入隊(duì)列;2.當(dāng)隊(duì)列非空時(shí)繼續(xù)執(zhí)行,否則算法為空;3.出隊(duì)列,獲得隊(duì)頭節(jié)點(diǎn)V,訪問(wèn)頂點(diǎn)V并標(biāo)記V已經(jīng)被訪問(wèn);4.查找頂點(diǎn)V的第一個(gè)鄰接頂點(diǎn)col;5.若V的鄰接頂點(diǎn)col未被訪問(wèn)過(guò),則col進(jìn)隊(duì)列;6.繼續(xù)查找V的其他鄰接頂點(diǎn)col,轉(zhuǎn)到步驟5,若V的所有鄰接頂點(diǎn)都已經(jīng)被訪問(wèn)過(guò),則轉(zhuǎn)到步驟2。網(wǎng)絡(luò)爬蟲(chóng)策略1、

圖的寬度優(yōu)先遍歷爬蟲(chóng)項(xiàng)目是從一系列的種子鏈接開(kāi)始的。所謂種子鏈接,就好比寬度優(yōu)先遍歷中的種子節(jié)點(diǎn)。實(shí)際的網(wǎng)絡(luò)爬蟲(chóng)項(xiàng)目中種子鏈接可以有多個(gè),而寬度優(yōu)先遍歷的種子節(jié)點(diǎn)只有一個(gè)。寬度優(yōu)先遍歷流程:1.將初始的種子URL放入TODO表;2.TODO表中取得一條鏈接,和Visited表中的鏈接進(jìn)行比較,若Visited表中存在此鏈接(表示已被訪問(wèn)過(guò)),跳過(guò)不做處理;不存在(表示未被訪問(wèn)過(guò)),繼續(xù)進(jìn)行。3.對(duì)鏈接進(jìn)行解析,把頁(yè)面中新解析出的URL放入TODO表中4.處理完畢后,將本頁(yè)面的鏈接地址直接存入Visited表中;5.繼續(xù)步驟2,循環(huán)往復(fù)。網(wǎng)絡(luò)爬蟲(chóng)策略1、圖的寬度優(yōu)先遍歷寬度優(yōu)先遍歷爬蟲(chóng)優(yōu)勢(shì):重要的網(wǎng)頁(yè)往往離種子比較近,距離越遠(yuǎn)重要性越低,寬度優(yōu)先遍歷能最先抓取重要頁(yè)面;萬(wàn)維網(wǎng)的最大深度能達(dá)到17層,到達(dá)指定網(wǎng)頁(yè)總存在一條最短路徑,寬度優(yōu)先遍歷會(huì)以最快的速度達(dá)到指定網(wǎng)頁(yè);寬度優(yōu)先有利于多爬蟲(chóng)的合作抓取,多爬蟲(chóng)合作通常先抓取站內(nèi)鏈接,抓取的封閉性很強(qiáng)。網(wǎng)絡(luò)爬蟲(chóng)策略2、深度優(yōu)先遍歷深度優(yōu)先遍歷類似于樹(shù)的前序遍歷。采用的搜索方法是盡可能先對(duì)縱深方向進(jìn)行遍歷。具體流程如下:1.訪問(wèn)出發(fā)點(diǎn)V,并將其標(biāo)記為已訪問(wèn)過(guò);2.依次從V出發(fā)搜索V的每個(gè)鄰接點(diǎn)W。若W未曾訪問(wèn)過(guò),則以W為新的出發(fā)點(diǎn)繼續(xù)進(jìn)行深度優(yōu)先遍歷,直至所有和源點(diǎn)V有路徑相通的頂點(diǎn)(亦稱為從源點(diǎn)可達(dá)的頂點(diǎn))均已被訪問(wèn)為止;3.若此時(shí)仍有未訪問(wèn)的頂點(diǎn),則另選一個(gè)尚未訪問(wèn)的頂點(diǎn)作為新的源點(diǎn)重復(fù)上述過(guò)程,直至所有頂點(diǎn)均已被訪問(wèn)為止。網(wǎng)絡(luò)爬蟲(chóng)策略示例:如圖選擇A作為種子節(jié)點(diǎn),則深度優(yōu)先遍歷的過(guò)程如表所示:遍歷過(guò)程中出隊(duì)列的節(jié)點(diǎn)順序就是圖的深度優(yōu)先遍歷的訪問(wèn)順序:A->B->E->C->D操作隊(duì)列中元素

初始空A入隊(duì)列AA出隊(duì)列空B入隊(duì)列BB出隊(duì)列空E入隊(duì)列EC入隊(duì)列ECE出隊(duì)列CC出隊(duì)列空D入隊(duì)列DD出隊(duì)列空2、深度優(yōu)先遍歷寬度優(yōu)先VS深度優(yōu)先廣度優(yōu)先遍歷是以層為順序,將某一層上的所有節(jié)點(diǎn)都搜索到了之后才向下一層搜索;深度優(yōu)先遍歷是將某一條枝干上的所有節(jié)點(diǎn)都搜索到了之后,才轉(zhuǎn)向搜索另一條枝干上的所有節(jié)點(diǎn)。網(wǎng)絡(luò)爬蟲(chóng)策略抓取URL時(shí),給待遍歷的網(wǎng)頁(yè)賦予一定的優(yōu)先級(jí),根據(jù)這種優(yōu)先級(jí)進(jìn)行遍歷,這種方法稱為帶偏好的遍歷。優(yōu)先級(jí)的依據(jù)判斷網(wǎng)頁(yè)的重要性的因素很多,主要有鏈接的歡迎度、鏈接的重要度和平均鏈接深度等因素:鏈接歡迎度。主要是由反向鏈接(

backlinks,即指向當(dāng)前URL的鏈接)的數(shù)量和質(zhì)量決定的,定義為IB(P)。鏈接的重要度。一個(gè)關(guān)于URL字符串的函數(shù),考察字符串本身(如.com,.cc

),定義為IL(P)。平均鏈接深度。根據(jù)寬度優(yōu)先的原則計(jì)算出全站的平均鏈接深度,然后認(rèn)為距離種子站點(diǎn)越近的重要性越高,定義為ID(P)。網(wǎng)絡(luò)爬蟲(chóng)策略3、

帶偏好的爬蟲(chóng)最佳優(yōu)先爬蟲(chóng)實(shí)現(xiàn)最佳優(yōu)先爬蟲(chóng)最簡(jiǎn)單的方式可以使用優(yōu)先級(jí)隊(duì)列來(lái)實(shí)現(xiàn)TODO表,并且把每個(gè)URL的重要性作為隊(duì)列元素的優(yōu)先級(jí)。這樣,每次選出來(lái)擴(kuò)展的URL就是具有最高重要性的網(wǎng)頁(yè)。示例:若圖節(jié)點(diǎn)的重要性為D>B>C>A>E>F>I>G>H,則遍歷的過(guò)程如表所示:網(wǎng)絡(luò)爬蟲(chóng)策略TODO表Visited表A空BCDEFAB,C,E,FA,DC,E,FA,D,BE,FA,D,B,CF,HA,D,B,C,EG,HA,D,B,C,E,FHA,D,B,C,E,F,GIA,D,B,C,E,F,G,H空A,D,B,C,E,F,G,H,I小結(jié):網(wǎng)絡(luò)爬蟲(chóng)流程、分類網(wǎng)頁(yè)相關(guān)概率:http協(xié)議、請(qǐng)求與響應(yīng)

網(wǎng)頁(yè)結(jié)構(gòu)(html,js,css)數(shù)據(jù)采集與預(yù)處理24-5月-23網(wǎng)絡(luò)爬蟲(chóng)的作用及流程:通用網(wǎng)絡(luò)爬蟲(chóng)體系結(jié)構(gòu)http基本原理http的請(qǐng)求和響應(yīng)方式復(fù)習(xí)1response對(duì)象(響應(yīng))靜態(tài)網(wǎng)頁(yè)數(shù)據(jù)采集--Requests庫(kù)Requests庫(kù)及常用方法(請(qǐng)求)2

通用代碼框架31、Requests庫(kù)簡(jiǎn)介Requests庫(kù)是使用Python語(yǔ)言編寫(xiě),基于Urllib開(kāi)發(fā),采用Apache2Licensed開(kāi)源協(xié)議的HTTP庫(kù),可以幫助我們發(fā)送請(qǐng)求,獲取請(qǐng)求響應(yīng)的數(shù)據(jù),如指定網(wǎng)頁(yè)的HTML內(nèi)容。Requests庫(kù)支持HTTP連接保持和連接池,支持使用cookie保持會(huì)話,支持文件上傳,支持自動(dòng)確定響應(yīng)內(nèi)容的編碼,支持國(guó)際化的URL和POST數(shù)據(jù)自動(dòng)編碼等功能。它比urllib更加方便,可以幫助我們節(jié)約大量的開(kāi)發(fā)工作量,是初學(xué)者的最佳選擇。Requests庫(kù)安裝及常用方法2、Requests庫(kù)安裝為了減少安裝過(guò)程中出現(xiàn)的問(wèn)題,建議將pip強(qiáng)制升級(jí)為最新版本。由于缺省情況下python以及相關(guān)包從國(guó)外網(wǎng)站/simple下載,速度較慢,容易出現(xiàn)超時(shí)等問(wèn)題,建議使用國(guó)內(nèi)鏡像如清華鏡像進(jìn)行升級(jí)安裝。python第三方庫(kù)的安裝都建議使用-i參數(shù)切換為國(guó)內(nèi)鏡像地址。pip升級(jí)的完整命令如下所示。windows下requests庫(kù)安裝方法為,在命令行下輸入如下命令pipinstallrequests-i/simple安裝過(guò)程中,容易出現(xiàn)錯(cuò)誤“pip不是內(nèi)部或外部命令,也不是可運(yùn)行的程序或批處理文件”。問(wèn)題原因也是安裝python過(guò)程中,沒(méi)有選擇“AddPython3.XtoPATH”選項(xiàng)??墒止ぬ砑又镰h(huán)境變量。Requests庫(kù)安裝及常用方法#切換鏡像需要使用-i參數(shù),/simple為清華鏡像地址python-mpipinstall-U--force-reinstallpip-i/simple2、Requests庫(kù)安裝Requests庫(kù)的安裝小測(cè)試Requests庫(kù)安裝及常用方法3、Requests常見(jiàn)方法開(kāi)發(fā)過(guò)程中有可能使用到的Http請(qǐng)求有Post、Delete、Put、Get,分別對(duì)應(yīng)增刪改查四種方式。一般來(lái)說(shuō)Post和Get請(qǐng)求使用頻率較高。Requests庫(kù)針對(duì)各種請(qǐng)求方式都進(jìn)行良好的封裝。使用Requests發(fā)送請(qǐng)求前,必須使用importrequests導(dǎo)包。Requests庫(kù)的主要請(qǐng)求方法如下表所示。Requests庫(kù)安裝及常用方法Requests庫(kù)安裝及常用方法request.request(method,url,**kwargs):

1、method:請(qǐng)求方式,對(duì)于get/post/put等7種2、url:獲取頁(yè)面的url鏈接3、**kwargs:控制訪問(wèn)的參數(shù),共13個(gè)(小組課后作業(yè))method請(qǐng)求方式:

r=requests.request('GET',url,**kwargs)r=requests.request('HEAD',url,**kwargs)r=requests.request('POST',url,**kwargs)r=requests.request('PUT',url,**kwargs)r=requests.request('PATCH',url,**kwargs)r=requests.request('DELETE',url,**kwargs)r=requests.request('OPTIONS',url,**kwargs)3、Requests常見(jiàn)方法

Requests庫(kù)安裝及常用方法既然Requests庫(kù)有這么多的請(qǐng)求方式,我們?cè)撊绾芜x擇?難道可以任意使用?結(jié)合瀏覽器的開(kāi)發(fā)者工具,可以很好的確定請(qǐng)求方式。舉例說(shuō)明,如在百度中輸入“python”,在點(diǎn)擊“百度一下”按鈕前,F(xiàn)12打開(kāi)瀏覽器(推薦使用Chrome瀏覽器)的開(kāi)發(fā)者工具。切換到“Network”選項(xiàng)卡,點(diǎn)擊“百度一下”按鈕,會(huì)發(fā)現(xiàn)“Network”選項(xiàng)卡下攔截到很多請(qǐng)求,可根據(jù)類型進(jìn)行過(guò)濾,也可逐一進(jìn)行查找。對(duì)于爬蟲(chóng)來(lái)說(shuō)一般選擇XHR(ajax請(qǐng)求)或Doc(HTML),我們選擇XHR過(guò)濾后請(qǐng)求后如圖所示。答案是否定的。到底應(yīng)該使用哪種請(qǐng)求方式。由目標(biāo)網(wǎng)站的開(kāi)發(fā)者決定,我們只能被動(dòng)適應(yīng)。從爬蟲(chóng)編寫(xiě)的角度來(lái)說(shuō),get請(qǐng)求占大多數(shù),post請(qǐng)求只有特殊情況下使用,如模擬登錄。Requests庫(kù)安裝及常用方法鼠標(biāo)點(diǎn)擊請(qǐng)求,根據(jù)查找關(guān)鍵字“python”或返回的內(nèi)容確定真正的請(qǐng)求,如圖所示。Headers中的RequestMethod為請(qǐng)求方式。Preview可以預(yù)覽返回的數(shù)據(jù)。3、Requests常見(jiàn)方法4、

Requests庫(kù)的Get方法Requests庫(kù)安裝及常用方法4、

Requests庫(kù)的Get方法requests.get(url,params=None,

**kwargs)?

url:

擬獲取頁(yè)面的url鏈接?

params:

url中的額外參數(shù),字典或字節(jié)流格式,可選?**kwargs:

12個(gè)控制訪問(wèn)的參數(shù)Requests庫(kù)安裝及常用方法4、

Requests庫(kù)的Get方法案例一:獲取西安電子科技大學(xué)出版社的首頁(yè)Html內(nèi)容。url:Requests庫(kù)安裝及常用方法4、

Requests庫(kù)的Get方法案例一:獲取西安電子科技大學(xué)出版社的首頁(yè)Html內(nèi)容。url:Requests庫(kù)安裝及常用方法Requests庫(kù)安裝及常用方法選擇西電首頁(yè)“教材”分類中的計(jì)算機(jī)后,會(huì)發(fā)現(xiàn)url地址跳轉(zhuǎn)到/Pages/booklist.aspx?classid=1.1.2.。其中問(wèn)號(hào)?代表后續(xù)內(nèi)容為參數(shù)傳遞,參數(shù)傳遞遵循?key=value&key1=value的格式,如?classid=1.1.2。這種方式是Http協(xié)議中Get請(qǐng)求的基本參數(shù)傳遞方式,requests庫(kù)的參數(shù)傳遞也使用這種方式。如獲取教材中的計(jì)算機(jī)類圖書(shū)的html,可將代碼進(jìn)行如下修改。4、

Requests庫(kù)的Get方法5、

Requests庫(kù)的Post方法Requests庫(kù)安裝及常用方法requests.post(url,data=None,**kwargs)

url:獲取頁(yè)面的url鏈接data:字典、字節(jié)序列或文件對(duì)象,作為Requests的內(nèi)容**kwargs:12個(gè)控制訪問(wèn)的參數(shù)2Requests庫(kù)及常用方法(請(qǐng)求)靜態(tài)網(wǎng)頁(yè)數(shù)據(jù)采集--Requests庫(kù)response對(duì)象(響應(yīng))1

通用代碼框架3response對(duì)象由服務(wù)端返回給客戶端,可分為三部分:響應(yīng)狀態(tài)碼(ResponseStatusCode)響應(yīng)頭(ResponseHeaders)響應(yīng)體(ResponseBody)response對(duì)象響應(yīng)1響應(yīng)狀態(tài)碼2響應(yīng)頭3空行4響應(yīng)體發(fā)送請(qǐng)求后,requests可獲得響應(yīng)response對(duì)象的信息:狀態(tài)碼、響應(yīng)頭、Cookies、Content等,具體的響應(yīng)信息如下:r.text:獲取響應(yīng)的文本內(nèi)容;r.status_code:獲取響應(yīng)的狀態(tài)碼;r.headers:獲取指響應(yīng)頭信息;r.cookies:獲取Cookies信息;r.url:獲取請(qǐng)求的URL;r.history:獲取請(qǐng)求的歷史信息;r.request:獲取請(qǐng)求的方式;response對(duì)象響應(yīng)response對(duì)象Response對(duì)象屬性response對(duì)象案例二:查看百度爬取對(duì)象的相關(guān)信息response對(duì)象案例二:查看百度爬取對(duì)象的相關(guān)信息response對(duì)象r.encoding:如果header中不存在charset,則認(rèn)為編碼為ISO‐8859‐1r.text根據(jù)r.encoding顯示網(wǎng)頁(yè)內(nèi)容r.apparent_encoding:根據(jù)網(wǎng)頁(yè)內(nèi)容分析出的編碼方式可以看作是r.encoding的備選理解response的編碼3Requests庫(kù)及常用方法(請(qǐng)求)靜態(tài)網(wǎng)頁(yè)數(shù)據(jù)采集--Requests庫(kù)通用代碼框架1response對(duì)象(響應(yīng))2通用代碼框架理解Requests庫(kù)的異常通用代碼框架理解Response的異常通用代碼框架任務(wù)1手機(jī)號(hào)碼查詢【任務(wù)描述】練習(xí)使用通用爬蟲(chóng)框架獲取靜態(tài)網(wǎng)頁(yè)的文本內(nèi)容。使用Requests庫(kù),獲取/手機(jī)歸屬地查詢結(jié)果,并打印輸出頁(yè)面的HTML文本內(nèi)容。【分析】

目標(biāo)頁(yè)面如下圖所示。輸入合法數(shù)據(jù),觀察頁(yè)面請(qǐng)求的規(guī)律。輸入任意合法手機(jī)號(hào)后點(diǎn)擊查詢,頁(yè)面跳轉(zhuǎn),發(fā)現(xiàn)瀏覽器地址欄發(fā)生變化。觀察得知,:8080/search.asp?mobileaction=mobile中mobile查詢參數(shù)后為查詢的手機(jī)號(hào)碼,是典型的Get請(qǐng)求。任務(wù)2QQ表情包下載【任務(wù)描述】使用Requests庫(kù)下載/zjbq/網(wǎng)站中任意表情包圖片。【分析】目標(biāo)頁(yè)面如下圖所示下載圖片首先需要確定圖片的url地址,需要結(jié)合瀏覽器的開(kāi)發(fā)者工具進(jìn)行分析。F12打開(kāi)瀏覽器的開(kāi)發(fā)者工具,點(diǎn)擊元素選取器

,移動(dòng)鼠標(biāo)到網(wǎng)頁(yè)圖片,觀察頁(yè)面結(jié)構(gòu)。頁(yè)面中的表情包圖片是通過(guò)img標(biāo)簽控制顯示,src屬性值是圖片的真實(shí)url地址。src屬性以/開(kāi)頭,代表是網(wǎng)站的根路徑,無(wú)法進(jìn)行直接訪問(wèn),需要將域名拼接到Src屬性前。如當(dāng)前選取圖片的src屬性為/tp/zjbq/202003091800097905.gif,完整的請(qǐng)求地址為/tp/zjbq/202003091800097905.gif。可直接復(fù)制地址到瀏覽器中進(jìn)行驗(yàn)證。小結(jié)Requests庫(kù)常用的方法:get,postResponse對(duì)象常用屬性Requests庫(kù)Requests庫(kù)常用的方法:get,post,13個(gè)控制參數(shù)(小組討論結(jié)果)Response對(duì)象常用屬性:復(fù)習(xí)理解Cookies和Session的概念熟練掌握Requests的會(huì)話對(duì)象的使用熟練掌握Requests的Post請(qǐng)求用法能夠使用開(kāi)發(fā)者工具進(jìn)行請(qǐng)求分析教學(xué)目標(biāo)1Cookie與session靜態(tài)網(wǎng)頁(yè)數(shù)據(jù)采集--Requests庫(kù)Requests庫(kù)入門任務(wù)講解2

Requests庫(kù)模擬會(huì)話3Requests庫(kù)入門任務(wù)講解任務(wù)1:手機(jī)號(hào)碼查詢【任務(wù)描述】練習(xí)使用通用爬蟲(chóng)框架獲取靜態(tài)網(wǎng)頁(yè)的文本內(nèi)容。使用Requests庫(kù),獲取/手機(jī)歸屬地查詢結(jié)果,并打印輸出頁(yè)面的HTML文本內(nèi)容?!痉治觥?/p>

目標(biāo)頁(yè)面如下圖所示。輸入合法數(shù)據(jù),觀察頁(yè)面請(qǐng)求的規(guī)律。輸入任意合法手機(jī)號(hào)后點(diǎn)擊查詢,頁(yè)面跳轉(zhuǎn),發(fā)現(xiàn)瀏覽器地址欄發(fā)生變化。觀察得知,:8080/search.asp?mobileaction=mobile中mobile查詢參數(shù)后為查詢的手機(jī)號(hào)碼,是典型的Get請(qǐng)求。Requests庫(kù)入門任務(wù)講解任務(wù)2:QQ表情包下載【任務(wù)描述】使用Requests庫(kù)下載/zjbq/網(wǎng)站中任意表情包圖片?!痉治觥磕繕?biāo)頁(yè)面首先需要確定圖片的url地址,需要結(jié)合瀏覽器的開(kāi)發(fā)者工具進(jìn)行分析。F12打開(kāi)瀏覽器的開(kāi)發(fā)者工具,點(diǎn)擊元素選取器

,移動(dòng)鼠標(biāo)到網(wǎng)頁(yè)圖片,觀察頁(yè)面結(jié)構(gòu)。頁(yè)面中的表情包圖片是通過(guò)img標(biāo)簽控制顯示,src屬性值是圖片的真實(shí)url地址。src屬性以/開(kāi)頭,代表是網(wǎng)站的根路徑,無(wú)法進(jìn)行直接訪問(wèn),需要將域名拼接到Src屬性前。如當(dāng)前選取圖片的src屬性為/tp/zjbq/202003091800097905.gif,完整的請(qǐng)求地址為/tp/zjbq/202003091800097905.gif??芍苯訌?fù)制地址到瀏覽器中進(jìn)行驗(yàn)證。2Requests庫(kù)入門任務(wù)講解靜態(tài)網(wǎng)頁(yè)數(shù)據(jù)采集--Requests庫(kù)Cookie與Session1

Requests庫(kù)模擬會(huì)話31、Requests模擬登錄需要登錄之后才能進(jìn)行頁(yè)面爬取的情況,屬于深層次的網(wǎng)頁(yè)爬取。我們將講一些大家熟悉的例子,比如爬取獵聘網(wǎng)招聘信息、QQ郵箱郵件的內(nèi)容,這種網(wǎng)站對(duì)權(quán)限的管理非常嚴(yán)格,不同的角色權(quán)限,對(duì)應(yīng)的網(wǎng)頁(yè)內(nèi)容是不同的。模擬登錄由于涉及到用戶名和密碼等隱私數(shù)據(jù),一般網(wǎng)站的設(shè)計(jì)人員會(huì)使用Post方式向網(wǎng)站的后臺(tái)進(jìn)行數(shù)據(jù)提交,密碼也不是明碼傳輸,而是加密后傳輸。需要使用瀏覽器的開(kāi)發(fā)者工具攔截網(wǎng)絡(luò)請(qǐng)求分析出登錄提交的URL地址。Cookie與Session1、Requests模擬登錄分析出登錄的URL地址后只是邁出了關(guān)鍵的一步,實(shí)際上現(xiàn)在的網(wǎng)站為了應(yīng)對(duì)爬蟲(chóng)爬取,避免別有用心的人惡意登錄和注冊(cè),大多數(shù)都會(huì)采用驗(yàn)證碼技術(shù)。現(xiàn)在普遍使用驗(yàn)證碼的技術(shù)除了圖片驗(yàn)證碼外,還有短信驗(yàn)證碼、滑動(dòng)拼圖、圖標(biāo)點(diǎn)選等多種方式。有些驗(yàn)證碼可以通過(guò)機(jī)器學(xué)習(xí)等技術(shù)手段解決,有些只能依靠打碼平臺(tái)人工識(shí)別。網(wǎng)絡(luò)傳輸協(xié)議HTTP是一種無(wú)狀態(tài)的協(xié)議。使用用戶登錄來(lái)舉例,用戶登錄向Web服務(wù)端請(qǐng)求,驗(yàn)證通過(guò)后跳轉(zhuǎn)到主頁(yè),然后連接會(huì)斷開(kāi),不會(huì)一直持續(xù)連接。再次發(fā)送請(qǐng)求,HTTP協(xié)議無(wú)法知曉用戶已經(jīng)登錄過(guò),無(wú)記憶功能。為了解決狀態(tài)保持的問(wèn)題,在Web開(kāi)發(fā)中常用Cookies和Session來(lái)實(shí)現(xiàn)狀態(tài)保持機(jī)制。Cookie與Session2、Cookies機(jī)制存儲(chǔ)cookie是瀏覽器提供的功能。cookie其實(shí)是存儲(chǔ)在瀏覽器中的純文本,瀏覽器的安裝目錄下會(huì)專門有一個(gè)cookie文件夾來(lái)存放各個(gè)域下設(shè)置的cookie。當(dāng)網(wǎng)頁(yè)要發(fā)http請(qǐng)求時(shí),瀏覽器會(huì)先檢查是否有相應(yīng)的cookie,有則自動(dòng)添加在request請(qǐng)求中header的cookie字段中。這些是瀏覽器自動(dòng)幫我們做的,而且每一次http請(qǐng)求瀏覽器都會(huì)自動(dòng)幫我們做。Cookie與Session2、Cookies機(jī)制存儲(chǔ)在cookie中的數(shù)據(jù),每次都會(huì)被瀏覽器自動(dòng)放在http請(qǐng)求中,如果這些數(shù)據(jù)并不是每個(gè)請(qǐng)求都需要發(fā)給服務(wù)端的數(shù)據(jù),瀏覽器這設(shè)置自動(dòng)處理無(wú)疑增加了網(wǎng)絡(luò)開(kāi)銷;但如果這些數(shù)據(jù)是每個(gè)請(qǐng)求都需要發(fā)給服務(wù)端的數(shù)據(jù)(比如身份認(rèn)證信息),瀏覽器這設(shè)置自動(dòng)處理就大大免去了重復(fù)添加操作。所以對(duì)于那設(shè)置“每次請(qǐng)求都要攜帶的信息(最典型的就是身份認(rèn)證信息)”就特別適合放在cookie中,其他類型的數(shù)據(jù)就不適合了。Cookie與Sessioncookie最典型的應(yīng)用是:(一):判斷用戶是否登陸過(guò)網(wǎng)站,以便下次登錄時(shí)能夠直接登錄。如果我們刪除cookie,則每次登錄必須從新填寫(xiě)登錄的相關(guān)信息。

(二):另一個(gè)重要的應(yīng)用是“購(gòu)物車”中類的處理和設(shè)計(jì)。用戶可能在一段時(shí)間內(nèi)在同一家網(wǎng)站的不同頁(yè)面選擇不同的商品,可以將這些信息都寫(xiě)入cookie,在最后付款時(shí)從cookie中提取這些信息,當(dāng)然這里面有了安全和性能問(wèn)題需要我們考慮了。2、Cookies機(jī)制可通過(guò)瀏覽器開(kāi)發(fā)者工具,查看cookies。在瀏覽器中打開(kāi)百度,F(xiàn)12打開(kāi)開(kāi)發(fā)者工具,選擇Application選項(xiàng)卡。在左側(cè)目錄樹(shù)中選擇Cookies,就可以查看網(wǎng)站使用的cookie。Cookie與Session3、Session機(jī)制Session機(jī)制是一種服務(wù)器端的機(jī)制,服務(wù)器使用一種類似于散列表的結(jié)構(gòu)(也可能就是使用散列表)來(lái)保存信息。當(dāng)程序需要為某個(gè)客戶端的請(qǐng)求創(chuàng)建一個(gè)Session時(shí),服務(wù)器首先檢查這個(gè)客戶端的請(qǐng)求(cookie)里是否已包含了一個(gè)Session標(biāo)識(shí)(稱為SessionId)。如果已包含則說(shuō)明以前已經(jīng)為此客戶端創(chuàng)建過(guò)Session,服務(wù)器就按照SessionId把這個(gè)session檢索出來(lái)使用(檢索不到,會(huì)新建一個(gè));如果客戶端請(qǐng)求不包含SessionId,則為此客戶端創(chuàng)建一個(gè)Session并且生成一個(gè)與此Session相關(guān)聯(lián)的Sessionid,SessionId的值應(yīng)該是一個(gè)既不會(huì)重復(fù),又不容易被找到規(guī)律以仿造字符串,這個(gè)SessionId將被在本次響應(yīng)中返回給客戶端保存。Cookie與Session3、Session機(jī)制保存這個(gè)Sessionid的方式可以采用Cookie,這樣在交互過(guò)程中瀏覽器可以自動(dòng)的按照規(guī)則把這個(gè)標(biāo)識(shí)發(fā)送給服務(wù)器。一般這個(gè)cookie的名字都是類似于SEEESIONID。但cookie可以被人為的禁止,則必須有其他機(jī)制以便在cookie被禁止時(shí)仍然能夠把sessionid傳遞回服務(wù)器。服務(wù)器也可以通過(guò)URL重寫(xiě)的方式來(lái)傳遞SessionID的值,因此不是完全依賴Cookie。如果客戶端Cookie禁用,則服務(wù)器可以自動(dòng)通過(guò)重寫(xiě)URL的方式來(lái)保存Session的值,并且這個(gè)過(guò)程對(duì)程序員透明。Cookie與Session4、Session與Cookie區(qū)別和聯(lián)系cookie數(shù)據(jù)存放在客戶的瀏覽器上,session數(shù)據(jù)放在服務(wù)器上。cookie不是很安全,別人可以分析存放在本地的cookie并進(jìn)行cookie欺騙,考慮到安全應(yīng)當(dāng)使用session。session會(huì)在一定時(shí)間內(nèi)保存在服務(wù)器上。當(dāng)訪問(wèn)增多,會(huì)比較占用你服務(wù)器的性能,考慮到減輕服務(wù)器性能方面,應(yīng)當(dāng)使用cookie。單個(gè)cookie保存的數(shù)據(jù)不能超過(guò)4K,很多瀏覽器都限制一個(gè)站點(diǎn)最多保存20個(gè)cookie??梢钥紤]將登陸信息等重要信息存放為session,其他信息如果需要保留,可以放在cookie中。Cookie與Session3Requests庫(kù)入門任務(wù)講解靜態(tài)網(wǎng)頁(yè)數(shù)據(jù)采集--Requests庫(kù)Requests庫(kù)模擬會(huì)話1

Cookie與Session2Requests庫(kù)支持HTTP連接保持和連接池,支持使用cookie保持會(huì)話,支持文件上傳,支持自動(dòng)確定響應(yīng)內(nèi)容的編碼,支持國(guó)際化的URL和POST數(shù)據(jù)自動(dòng)編碼等功能。保持登陸的cookie和session機(jī)制都用到了Cookies,爬蟲(chóng)可以通過(guò)Cookies保持登陸狀態(tài)這個(gè)特性,以實(shí)現(xiàn)登錄爬取。再發(fā)起請(qǐng)求的時(shí)候,如果給爬蟲(chóng)添加一個(gè)已經(jīng)登錄的Cookies,就可以通過(guò)Cookies直接登錄網(wǎng)站,從而訪問(wèn)網(wǎng)站的深層頁(yè)面。Requests庫(kù)模擬會(huì)話Requests會(huì)話對(duì)象能夠跨請(qǐng)求保持某些參數(shù)如Cookies,即同一個(gè)Session實(shí)例發(fā)出的所有請(qǐng)求都保持在同一個(gè)Cookies,而Requests模塊每次會(huì)自動(dòng)處理Cookies,這樣就可以很方便地處理登錄時(shí)保存的Cookies問(wèn)題。因此,如果想要在爬蟲(chóng)代碼中保持登錄狀態(tài),可以使用Requests會(huì)話對(duì)象。如果使用會(huì)話對(duì)象發(fā)起請(qǐng)求,底層的TCP連接將會(huì)被重用,也帶來(lái)顯著的性能提升。Requests庫(kù)模擬會(huì)話Requests庫(kù)模擬會(huì)話

方法一:利用cookie直接登錄可以看到Session會(huì)話對(duì)象在兩次請(qǐng)求之間保持了第一次訪問(wèn)所設(shè)置的Cookies。Requests庫(kù)模擬會(huì)話方法二:利用session方法登錄網(wǎng)站Requests庫(kù)模擬會(huì)話Session會(huì)話對(duì)象也可以用來(lái)為請(qǐng)求方法提供缺省數(shù)據(jù)。通過(guò)為會(huì)話對(duì)象的屬性提供數(shù)據(jù)來(lái)實(shí)現(xiàn)的。RequestsPost請(qǐng)求在Web開(kāi)發(fā)中Get請(qǐng)求和Post請(qǐng)求有非常廣泛的應(yīng)用。Get請(qǐng)求適用于數(shù)據(jù)小不敏感的數(shù)據(jù)請(qǐng)求,將請(qǐng)求參數(shù)拼接在url地址后,以鍵/值的方式進(jìn)行傳遞,多個(gè)參數(shù)之間以&進(jìn)行連接。目標(biāo)地址和參數(shù)之間以?分隔。如在百度中輸入python,觀察瀏覽器的地址欄,/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=python。其中/s為請(qǐng)求地址,問(wèn)號(hào)后的部分為請(qǐng)求參數(shù)。除了Get請(qǐng)求外,對(duì)于Form表單的數(shù)據(jù)、敏感數(shù)據(jù)更適用于Post請(qǐng)求。Url地址欄不會(huì)發(fā)生變化,可通過(guò)瀏覽器的開(kāi)發(fā)者工具攔截請(qǐng)求。觀察Formdata的數(shù)據(jù)。以下通過(guò)百度登錄,熟悉攔截Post請(qǐng)求。Requests庫(kù)

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論