數(shù)據(jù)采集與預(yù)處理 課件 學(xué)習(xí)單元0-2 基礎(chǔ)知識(shí)、使用爬蟲技術(shù)進(jìn)行數(shù)據(jù)采集、使用傳感器進(jìn)行數(shù)據(jù)采集_第1頁
數(shù)據(jù)采集與預(yù)處理 課件 學(xué)習(xí)單元0-2 基礎(chǔ)知識(shí)、使用爬蟲技術(shù)進(jìn)行數(shù)據(jù)采集、使用傳感器進(jìn)行數(shù)據(jù)采集_第2頁
數(shù)據(jù)采集與預(yù)處理 課件 學(xué)習(xí)單元0-2 基礎(chǔ)知識(shí)、使用爬蟲技術(shù)進(jìn)行數(shù)據(jù)采集、使用傳感器進(jìn)行數(shù)據(jù)采集_第3頁
數(shù)據(jù)采集與預(yù)處理 課件 學(xué)習(xí)單元0-2 基礎(chǔ)知識(shí)、使用爬蟲技術(shù)進(jìn)行數(shù)據(jù)采集、使用傳感器進(jìn)行數(shù)據(jù)采集_第4頁
數(shù)據(jù)采集與預(yù)處理 課件 學(xué)習(xí)單元0-2 基礎(chǔ)知識(shí)、使用爬蟲技術(shù)進(jìn)行數(shù)據(jù)采集、使用傳感器進(jìn)行數(shù)據(jù)采集_第5頁
已閱讀5頁,還剩83頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

緒論單元概述本單元介紹了大數(shù)據(jù)概念、由來及產(chǎn)業(yè)發(fā)展。其次介紹了大數(shù)據(jù)采集技術(shù),由于大數(shù)據(jù)來源寬泛,針對(duì)不同的大數(shù)據(jù),提出了分類采集的概念。最后為了有效利用大數(shù)據(jù),避免影響分析結(jié)果,介紹了如何對(duì)數(shù)據(jù)進(jìn)行清洗、去臟等概念和技術(shù)。本學(xué)習(xí)單元以編寫一篇調(diào)查報(bào)告《您所了解的數(shù)據(jù)采集和處理技術(shù)》為例,通過編寫報(bào)告的要求,達(dá)到了解數(shù)據(jù)采集的概念和當(dāng)前數(shù)據(jù)處理的最新技術(shù)的目的。教學(xué)目標(biāo)了解大數(shù)據(jù)的概念,掌握大數(shù)據(jù)采集數(shù)據(jù)的概念及常用的采集技術(shù),掌握大數(shù)據(jù)預(yù)處理的概念及基本流程。了解大數(shù)據(jù)技術(shù)的社會(huì)需求,樹立服務(wù)社會(huì)、服務(wù)區(qū)域經(jīng)濟(jì)的理念。技能目標(biāo):通過常用的大數(shù)據(jù)采集技術(shù),了解大數(shù)據(jù)的預(yù)處理技術(shù)及社會(huì)應(yīng)用。任務(wù)1了解大數(shù)據(jù)概念及發(fā)展在進(jìn)行數(shù)據(jù)采集學(xué)習(xí)之前,首先了解什么是大數(shù)據(jù)、大數(shù)據(jù)應(yīng)用和發(fā)展,以加深認(rèn)識(shí),明確學(xué)習(xí)目的,更有針對(duì)性地學(xué)習(xí)

本任務(wù)的目標(biāo)是編寫一篇調(diào)查報(bào)告《您所了解的數(shù)據(jù)采集和處理技術(shù)》,內(nèi)容要求:1.采集數(shù)據(jù)來源不限,但有一定的代表性。2.所用技術(shù)是目前主流技術(shù),內(nèi)容詳實(shí),1500字左右,通過深入學(xué)習(xí)可用于實(shí)戰(zhàn)。3.調(diào)查方式不限,可深入生產(chǎn)、生活一線調(diào)查,也可網(wǎng)絡(luò)搜索。任務(wù)描述一、

了解大數(shù)據(jù)概念及發(fā)展

1.概念:大數(shù)據(jù)(bigdata)是人類在日常生產(chǎn)、生活中產(chǎn)生、累積的數(shù)據(jù)。這些數(shù)據(jù)的規(guī)模非常龐大,龐大到不能用G或T來衡量,至少是P(1000個(gè)T)、E(100萬個(gè)T)或Z(10億個(gè)T)來描述。

大數(shù)據(jù)是一種規(guī)模大到在獲取、存儲(chǔ)、管理、分析方面大大超出了傳統(tǒng)數(shù)據(jù)庫軟件工具能力范圍的數(shù)據(jù)集合,具有海量的數(shù)據(jù)規(guī)模、快速的數(shù)據(jù)流轉(zhuǎn)、多樣的數(shù)據(jù)類型和價(jià)值密度低四大特征

大數(shù)據(jù)的戰(zhàn)略意義不在于掌握龐大的數(shù)據(jù)信息,而在于對(duì)這些含有某些意義的數(shù)據(jù)進(jìn)行專業(yè)化處理。換而言之,如果把大數(shù)據(jù)比作一種產(chǎn)業(yè),那么這種產(chǎn)業(yè)實(shí)現(xiàn)盈利的關(guān)鍵在于提高對(duì)數(shù)據(jù)的“處理能力”,通過“處理”達(dá)到數(shù)據(jù)的“增值”任務(wù)實(shí)施

任務(wù)實(shí)施1.2、產(chǎn)業(yè)發(fā)展涵蓋以下幾個(gè)方面:

(1)現(xiàn)階段分析:不斷地進(jìn)行架構(gòu)演化、技術(shù)提升、概念明晰的反復(fù)迭代的過程,最終從IaaS(設(shè)施及服務(wù))發(fā)展到PaaS(平臺(tái)及服務(wù)),發(fā)展到當(dāng)前從PaaS向SaaS(軟件及服務(wù))的過渡階段

(2)行業(yè)差異化:數(shù)據(jù)產(chǎn)業(yè)必須滿足服務(wù)對(duì)象的需求。分析發(fā)現(xiàn),即使同一行業(yè)的數(shù)據(jù)業(yè)務(wù)需求也有巨大的不同,這就意味著針對(duì)某一行業(yè)的SaaS服務(wù)未必能夠充分滿足同一行業(yè)的全部業(yè)務(wù)需求。(3)架構(gòu)差異化:數(shù)據(jù)存儲(chǔ)的架構(gòu)差距,導(dǎo)致了目前大數(shù)據(jù)IaaS平臺(tái)和PaaS平臺(tái)巨大不同,同時(shí)也導(dǎo)致了SaaS的巨大差異。且各種架構(gòu)之間很難進(jìn)行統(tǒng)一。(4)概念差異化:是指對(duì)大數(shù)據(jù)實(shí)質(zhì)理解的差異化。這種差異化表現(xiàn)在大數(shù)據(jù)行業(yè)的全部。尤其大數(shù)據(jù)行業(yè)流程步驟的焦點(diǎn),也是構(gòu)成概念差異化的主要原因(5)未來需求分析:未來大數(shù)據(jù)PaaS層的核心會(huì)從存儲(chǔ)和數(shù)據(jù)轉(zhuǎn)換接口轉(zhuǎn)向“數(shù)據(jù)處理”,算法是整個(gè)PaaS的重要組成部分。沒有算法支撐的PaaS平臺(tái)不是未來的主流。(6)人才需求:未來3至5年,中國需要180萬數(shù)據(jù)人才,但截至目前,中國大數(shù)據(jù)從業(yè)人員只有約30萬人二、數(shù)據(jù)采集技術(shù)數(shù)據(jù)采集技術(shù)就是對(duì)數(shù)據(jù)進(jìn)行ETL操作,通過對(duì)數(shù)據(jù)進(jìn)行提取、轉(zhuǎn)換、加載,最終挖掘數(shù)據(jù)的潛在價(jià)值。然后提供給用戶解決方案或者決策參考。ETL,是英文Extract-Transform-Load的縮寫,數(shù)據(jù)從數(shù)據(jù)來源端經(jīng)過抽取(extract)、轉(zhuǎn)換(transform)、加載(load)到目的端,然后進(jìn)行處理分析的過程。用戶從數(shù)據(jù)源抽取出所需的數(shù)據(jù),經(jīng)過數(shù)據(jù)清洗,最終按照預(yù)先定義好的數(shù)據(jù)模型,將數(shù)據(jù)加載到數(shù)據(jù)倉庫中去,最后對(duì)數(shù)據(jù)倉庫中的數(shù)據(jù)進(jìn)行數(shù)據(jù)分析和處理。任務(wù)實(shí)施2.1數(shù)據(jù)采集技術(shù)分類1.與產(chǎn)業(yè)相關(guān)的數(shù)據(jù)采集技術(shù)

指工業(yè)、農(nóng)業(yè)、醫(yī)療等生產(chǎn)、生活或工作過程中產(chǎn)生的應(yīng)用數(shù)據(jù),這部分?jǐn)?shù)據(jù)特點(diǎn)是直接由數(shù)據(jù)源產(chǎn)生數(shù)據(jù),經(jīng)過自動(dòng)化儀器采集,上傳至計(jì)算機(jī)完成數(shù)據(jù)的存儲(chǔ)和應(yīng)用。

特點(diǎn):通過傳感器自動(dòng)采集,經(jīng)過微處理器(MCU--MicroControllerUnit)處理,最后得到系統(tǒng)數(shù)據(jù)并通過數(shù)據(jù)傳輸技術(shù)(UART、I2C、SPI)上傳至計(jì)算機(jī)保存。任務(wù)實(shí)施2.與系統(tǒng)運(yùn)行過程相關(guān)的數(shù)據(jù)采集技術(shù)

指大型系統(tǒng)或業(yè)務(wù)平臺(tái)在一定的時(shí)間段內(nèi)都會(huì)產(chǎn)生大量中間過程性數(shù)據(jù)。對(duì)于這些數(shù)據(jù)進(jìn)行分析,我們可以得到出很多有價(jià)值的數(shù)據(jù)。

特點(diǎn):使用開源日志收集系統(tǒng)來進(jìn)行,其中包括Flume、Scribe等。ApacheFlume是一個(gè)分布式、可靠、可用的服務(wù),用于高效地收集、聚合和移動(dòng)大量的日志數(shù)據(jù),它具有基于流式數(shù)據(jù)流的簡單靈活的架構(gòu)。Scribe是Facebook開源的日志采集系統(tǒng)。Scribe實(shí)際上是一個(gè)分布式共享隊(duì)列,它可以從各種數(shù)據(jù)源上收集日志數(shù)據(jù),然后放入它上面的共享隊(duì)列中,通過隊(duì)列將數(shù)據(jù)Push到分布式存儲(chǔ)系統(tǒng)中存儲(chǔ)。任務(wù)實(shí)施3.與網(wǎng)絡(luò)相關(guān)的數(shù)據(jù)采集技術(shù)

網(wǎng)絡(luò)是一個(gè)信息的大平臺(tái),紛繁雜亂的數(shù)據(jù)應(yīng)有盡有,取之不盡,這些數(shù)據(jù)一般通過網(wǎng)絡(luò)爬蟲和一些網(wǎng)站平臺(tái)提供的公共API方式從網(wǎng)站上獲取。這部分?jǐn)?shù)據(jù)特點(diǎn)是數(shù)據(jù)一般是非結(jié)構(gòu)化數(shù)據(jù)和半結(jié)構(gòu)化數(shù)據(jù)為主。

特點(diǎn):一般使用網(wǎng)頁爬蟲來進(jìn)行,其中包括ApacheNutch、Crawler4j、Scrapy等框架。任務(wù)實(shí)施4.與數(shù)據(jù)庫相關(guān)的數(shù)據(jù)采集技術(shù)一些企業(yè)會(huì)使用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫MySQL和Oracle等來存儲(chǔ)數(shù)據(jù)。企業(yè)每時(shí)每刻產(chǎn)生的業(yè)務(wù)數(shù)據(jù),通過數(shù)據(jù)庫采集系統(tǒng)直接與企業(yè)業(yè)務(wù)后臺(tái)服務(wù)器結(jié)合,將企業(yè)業(yè)務(wù)后臺(tái)每時(shí)每刻都在產(chǎn)生大量的業(yè)務(wù)記錄寫入到數(shù)據(jù)庫中,最后由特定的處理分許系統(tǒng)進(jìn)行系統(tǒng)分析。

特點(diǎn):常使用以下工具1.使用Kettle這個(gè)ETL工具,可以管理來自不同數(shù)據(jù)庫的數(shù)據(jù)。2.使用Sqoop,可以將來自外部系統(tǒng)的數(shù)據(jù)配置到HDFS上,并將表填入Hive和HBase中。

3.使用flume進(jìn)行日志采集和匯總。任務(wù)實(shí)施2.2常用的數(shù)據(jù)采集系統(tǒng)

1.自動(dòng)采集系統(tǒng)使用數(shù)據(jù)傳感器經(jīng)過微處理器處理、轉(zhuǎn)換、過濾,最后轉(zhuǎn)換成系統(tǒng)有用的數(shù)據(jù)任務(wù)實(shí)施2.DigSpider數(shù)據(jù)采集系統(tǒng)

DigSpider數(shù)據(jù)采集平臺(tái)可以根據(jù)用戶提供的關(guān)鍵字和網(wǎng)絡(luò)地址進(jìn)行深度及廣度采集。自定義存儲(chǔ)格式,可以在線采集也可以離線采集。方便用戶獲得互聯(lián)網(wǎng)任何信息任務(wù)實(shí)施三、數(shù)據(jù)預(yù)處理技術(shù)

指在進(jìn)行主要處理數(shù)據(jù)之前,首先對(duì)已有的原始數(shù)據(jù)進(jìn)行的一些基本處理。去除一些數(shù)據(jù)挖掘無法使用的臟數(shù)或錯(cuò)誤數(shù)據(jù),以減輕系統(tǒng)處理數(shù)據(jù)的負(fù)擔(dān)。如處理重復(fù)數(shù)據(jù)、殘缺數(shù)據(jù)等。

主要包括:數(shù)據(jù)清理,數(shù)據(jù)集成,數(shù)據(jù)變換,數(shù)據(jù)歸約等。這些數(shù)據(jù)處理技術(shù)在數(shù)據(jù)挖掘之前使用,大大提高了數(shù)據(jù)挖掘模式的質(zhì)量,降低實(shí)際挖掘所需要的時(shí)間。任務(wù)實(shí)施3.1數(shù)據(jù)預(yù)處理內(nèi)容

1.數(shù)據(jù)審核預(yù)處理首先審核數(shù)據(jù),剔除臟數(shù)。由于數(shù)據(jù)來源復(fù)雜,形式多種多樣,因此,審核的方式也有所不同.

(1)準(zhǔn)確性審核

(2)適用性審核

(3)及時(shí)性審核

(4)一致性審核任務(wù)實(shí)施3.1數(shù)據(jù)預(yù)處理內(nèi)容

2.數(shù)據(jù)篩選篩選是在審核的基礎(chǔ)上進(jìn)一步進(jìn)行的操作,主要對(duì)審核過程中發(fā)現(xiàn)的錯(cuò)誤予以糾正。數(shù)據(jù)的篩選在市場調(diào)查、經(jīng)濟(jì)分析、管理決策中是十分重要的。3.數(shù)據(jù)排序

按照一定順序?qū)?shù)據(jù)排列,以便于研究者通過瀏覽數(shù)據(jù)發(fā)現(xiàn)一些明顯的特征或趨勢(shì),找到解決問題的線索。在某些場合,排序本身就是分析的目的之一。排序可借助于計(jì)算機(jī)很容易的完成。

任務(wù)實(shí)施3.2數(shù)據(jù)預(yù)處理方法

1.數(shù)據(jù)清洗:填寫缺失的值、光滑噪聲數(shù)據(jù)、識(shí)別或刪除離群點(diǎn)并解決不一致性來“清洗”數(shù)據(jù)

。2.數(shù)據(jù)集成:將多個(gè)數(shù)據(jù)源中的數(shù)據(jù)結(jié)合起來并統(tǒng)一存儲(chǔ),建立數(shù)據(jù)倉庫的過程實(shí)際上就是數(shù)據(jù)集成

。3.數(shù)據(jù)變換:通過平滑聚集,數(shù)據(jù)概化,規(guī)范化等方式將數(shù)據(jù)轉(zhuǎn)換成適用于數(shù)據(jù)挖掘的形式。4.數(shù)據(jù)歸約:據(jù)挖掘時(shí)往往數(shù)據(jù)量非常大,在少量數(shù)據(jù)上進(jìn)行挖掘分析需要很長的時(shí)間,數(shù)據(jù)歸約技術(shù)可以用來得到數(shù)據(jù)集的歸約表示,它小得多,但仍然接近于保持原數(shù)據(jù)的完整性,并結(jié)果與歸約前結(jié)果相同或幾乎相同。任務(wù)實(shí)施Theend謝謝!使用爬蟲技術(shù)進(jìn)行數(shù)據(jù)采集學(xué)習(xí)單元1單元概述本單元主要介紹了爬蟲的相關(guān)概念及爬取網(wǎng)頁的基本過程。通過對(duì)靜態(tài)頁面爬取,使學(xué)習(xí)者了解爬蟲的爬取的基本原理;通過對(duì)scrapy框架技術(shù)和Nutch技術(shù)講解,讓學(xué)習(xí)者能夠編寫簡單的網(wǎng)絡(luò)爬蟲項(xiàng)目利用爬蟲技術(shù)進(jìn)行數(shù)據(jù)采集。教學(xué)目標(biāo)掌握爬蟲的概念、作用和流程。掌握靜態(tài)網(wǎng)頁爬取的基本流程。

了解crapy框架技術(shù)和Nutch技術(shù)的相關(guān)知識(shí)和基本理論。掌握常用的抓取網(wǎng)頁所需工具的下載、安裝與使用。熟練利用各種爬取工具進(jìn)行網(wǎng)頁有用信息的爬取。任務(wù)1爬取靜態(tài)頁面數(shù)據(jù)

“社會(huì)輿情信息管理系統(tǒng)”需要搜集最新的職業(yè)教育信息來發(fā)布,尤其知名職教院校信息動(dòng)態(tài)。例如,在一高職網(wǎng)站爬取信息。一般的高職網(wǎng)站都由靜態(tài)和動(dòng)態(tài)兩類網(wǎng)頁構(gòu)成,為了增加學(xué)習(xí)的針對(duì)性,使用requests+BeautifulSoup爬取靜態(tài)頁面數(shù)據(jù),獲取網(wǎng)頁各部分?jǐn)?shù)據(jù)內(nèi)容。任務(wù)實(shí)現(xiàn)的關(guān)鍵點(diǎn)是:requests庫的安裝與使用,BeautifulSoup庫的安裝與使用,以及利用requests+BeautifulSoup爬取靜態(tài)頁面數(shù)據(jù)的基本過程。任務(wù)分析1.安裝requests庫在CMD命令窗口下,只需要輸入命令pipinstallrequests,即可完成requests庫的安裝。任務(wù)實(shí)施2.使用requests庫獲取響應(yīng)內(nèi)容網(wǎng)絡(luò)爬蟲是通過requests向?yàn)g覽器發(fā)送請(qǐng)求,獲取請(qǐng)求內(nèi)容importrequests#發(fā)送請(qǐng)求,獲取服務(wù)器響應(yīng)內(nèi)容r=requests.get("/")r.encoding='utf-8'print("文本編碼:",r.encoding)print("響應(yīng)狀態(tài)碼:",r.status_code)print("字符串方式的響應(yīng)體:",r.text)3.定制requests(1)傳遞URL參數(shù)

在URL中加入?yún)?shù)的形式是在問號(hào)后,以鍵/值的形式放在URL中:任務(wù)實(shí)施importrequestsr=requests.get('/list.aspx?news_type=1')print("URL已經(jīng)正確編碼:",r.url)print("字符串方式的響應(yīng)體:\n",r.text)也可以把參數(shù)保存在字典中,用params構(gòu)建到URL中importrequestskey_dict={'news_type':'1'}r=requests.get('/list.aspx',params=key_dict)r.encoding='utf-8'print("URL已經(jīng)正確編碼:",r.url)print("字符串方式的響應(yīng)體:\n",r.text)(2)定制請(qǐng)求頭利用Google瀏覽器構(gòu)建請(qǐng)求頭。因?yàn)榇蜷_Google瀏覽器,點(diǎn)擊鼠標(biāo)右鍵,點(diǎn)擊檢查,就可以找到請(qǐng)求所需要的參數(shù):任務(wù)實(shí)施通過上圖,我們可以獲取如下信息:參數(shù)Host的值為'/'參數(shù)User-Agent的值為'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/80.0.3987.100Safari/537.36',利用上面兩個(gè)參數(shù)定制請(qǐng)求頭,如下所示:任務(wù)實(shí)施importrequestsheaders={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/80.0.3987.100Safari/537.36','Host':''}r=requests.get("/",headers=headers)print("響應(yīng)狀態(tài)碼:",r.status_code)(3)發(fā)送POST請(qǐng)求除了get請(qǐng)求外,還需要發(fā)送一些編碼格式為表單形式的數(shù)據(jù),有些網(wǎng)站需要登錄才能訪問,這樣就需要使用POST請(qǐng)求,也需要傳遞一個(gè)字典給Requests中的data參數(shù)。這個(gè)數(shù)據(jù)字典就會(huì)發(fā)出請(qǐng)求的時(shí)候自動(dòng)編碼為表單形式,如下所示:任務(wù)實(shí)施importrequestskey_dict={'key1':'value1','key2':'value2'}r=requests.post('/post',data=key_dict)print("URL已經(jīng)正確編碼:",r.url)print(r.text)4.安裝BeautifulSoup庫BeautifulSoup3目前已經(jīng)停止開發(fā),推薦在現(xiàn)在的項(xiàng)目中使用BeautifulSoup4。在windows系統(tǒng)下,只需要輸入命令pipinstallbeautifulsoup4,即可完成beautifulsoup4庫的安裝。5.使用requests+BeautifulSoup爬取靜態(tài)頁面數(shù)據(jù)以爬取河北工業(yè)職業(yè)技術(shù)學(xué)院工院新聞頁的新聞列表為例,基本實(shí)現(xiàn)步驟如下所示::(1)打開目標(biāo)網(wǎng)頁,確定要爬取的數(shù)據(jù)在網(wǎng)頁源代碼中的位置任務(wù)實(shí)施新建一記事本文件用于臨時(shí)存放我們拷貝的位置路徑。打開新建的記事本文件,右擊選擇“粘貼”便將我們?yōu)g覽的網(wǎng)頁中得第一條新聞標(biāo)題在html代碼中的位置信息粘貼過來,本例中粘貼的文本內(nèi)容為“body>div.jz>div>div.ny_right>div>div.navjz.ny_newslb>ul>li:nth-child(1)>a”,去掉“l(fā)i”后面的“:nth-child(1)”代碼后,路徑“body>div.jz>div>div.ny_right>div>div.navjz.ny_newslb>ul>li>a”則變?yōu)閍標(biāo)簽在html代碼中的位置,暫存路徑。任務(wù)實(shí)施(2)編寫爬蟲文件任務(wù)實(shí)施importrequestsfrombs4importBeautifulSoupurl='/zhxw/gyxw.htm'strhtml=requests.get(url)strhtml.encoding=strhtml.apparent_encodingsoup=BeautifulSoup(strhtml.text,'lxml')data=soup.select('body>div.jz>div>div.ny_right>div>div.navjz.ny_newslb>ul>li>a')foritemindata:result={'title':item.get_text(),'link':item.get('href'),}print(result)1.爬蟲的概念爬蟲更官方點(diǎn)的名字叫數(shù)據(jù)采集,英文一般稱作spider,是一種按照一定的規(guī)則,自動(dòng)地抓取萬維網(wǎng)信息的程序或者腳本。簡單來說,網(wǎng)絡(luò)爬蟲就是根據(jù)一定算法實(shí)現(xiàn)編程開發(fā),主要通過URL實(shí)現(xiàn)數(shù)據(jù)的抓取和發(fā)掘。網(wǎng)絡(luò)爬蟲可以自動(dòng)化瀏覽網(wǎng)絡(luò)中的信息,當(dāng)然瀏覽信息的時(shí)候需要按照我們制定的規(guī)則進(jìn)行,這些規(guī)則我們稱之為網(wǎng)絡(luò)爬蟲算法。使用Python可以很方便地編寫出爬蟲程序,進(jìn)行互聯(lián)網(wǎng)信息的自動(dòng)化檢索。必備知識(shí)2.爬蟲的功能現(xiàn)如今大數(shù)據(jù)時(shí)代已經(jīng)到來,網(wǎng)絡(luò)爬蟲技術(shù)成為這個(gè)時(shí)代不可或缺的一部分,爬蟲的常用功能如圖所示:必備知識(shí)3.爬蟲的類型網(wǎng)絡(luò)爬蟲根據(jù)系統(tǒng)結(jié)構(gòu)和開發(fā)技術(shù),大致可以分為4種類型:通用網(wǎng)絡(luò)爬蟲、聚焦網(wǎng)絡(luò)爬蟲、增量式網(wǎng)絡(luò)爬蟲和深層網(wǎng)絡(luò)爬蟲。實(shí)際的網(wǎng)絡(luò)爬蟲系統(tǒng)通常是幾種爬蟲技術(shù)相結(jié)合實(shí)現(xiàn)的。必備知識(shí)(1)通用網(wǎng)絡(luò)爬蟲通用網(wǎng)絡(luò)爬蟲又稱全網(wǎng)爬蟲,它將爬行對(duì)象從一些種子URL擴(kuò)充到整個(gè)Web,主要為門戶站點(diǎn)搜索引擎和大型Web服務(wù)提供商采集數(shù)據(jù)。(2)聚焦網(wǎng)絡(luò)爬蟲聚焦網(wǎng)絡(luò)爬蟲又稱主題網(wǎng)絡(luò)爬蟲,是指選擇性地爬行那些與預(yù)先定義好的主題相關(guān)頁面的網(wǎng)絡(luò)爬蟲。3.爬蟲的類型必備知識(shí)(3)增量式網(wǎng)絡(luò)爬蟲增量式網(wǎng)絡(luò)爬蟲是指對(duì)已下載網(wǎng)頁采取增量式更新和只爬行新產(chǎn)生的或者已經(jīng)發(fā)生變化網(wǎng)頁的爬蟲,它能夠在一定程度上保證所爬行的頁面是盡可能新的頁面。(4)深層網(wǎng)絡(luò)爬蟲深層網(wǎng)絡(luò)爬蟲是大部分內(nèi)容不能通過靜態(tài)URL獲取的、隱藏在搜索表單后的、只有用戶提交一些關(guān)鍵詞才能獲得的網(wǎng)絡(luò)頁面。4.爬蟲的組成在爬蟲的系統(tǒng)框架中,主過程由控制器,解析器,資源庫三部分組成。(1)控制器控制器是網(wǎng)絡(luò)爬蟲的中央控制器,它主要是負(fù)責(zé)根據(jù)系統(tǒng)傳過來的URL鏈接,分配一線程,然后啟動(dòng)線程調(diào)用爬蟲爬取網(wǎng)頁的過程。(2)解析器解析器是負(fù)責(zé)網(wǎng)絡(luò)爬蟲的主要部分,其負(fù)責(zé)的工作主要有:下載網(wǎng)頁的功能,對(duì)網(wǎng)頁的文本進(jìn)行處理,如過濾功能,抽取特殊HTML標(biāo)簽的功能,分析數(shù)據(jù)功能。(3)資源庫主要是用來存儲(chǔ)網(wǎng)頁中下載下來的數(shù)據(jù)記錄的容器,并提供生成索引的目標(biāo)源。中大型的數(shù)據(jù)庫產(chǎn)品有:Oracle、SqlServer等。必備知識(shí)5.Requests庫獲取響應(yīng)的內(nèi)容的過程,等同于我們使用瀏覽器的過程,我們?cè)跒g覽器中輸入網(wǎng)址,瀏覽器就會(huì)向服務(wù)器請(qǐng)求內(nèi)容,服務(wù)器返回的就是HTML代碼,瀏覽器就會(huì)自動(dòng)解析代碼。而我們的網(wǎng)絡(luò)爬蟲與瀏覽器發(fā)送請(qǐng)求的過程是一樣的,通過requests向?yàn)g覽器發(fā)送請(qǐng)求獲取請(qǐng)求內(nèi)容;同時(shí)我們通過使用requets發(fā)送請(qǐng)求獲取數(shù)據(jù)。Requets可以發(fā)送get、post請(qǐng)求,還可以發(fā)送put、delete、options、head等請(qǐng)求。必備知識(shí)6.BeautifulSoup庫簡單來說,BeautifulSoup是python的一個(gè)庫,最主要的功能是從網(wǎng)頁抓取數(shù)據(jù)。BeautifulSoup提供一些簡單的、python式的函數(shù)用來處理導(dǎo)航、搜索、修改分析樹等功能。它是一個(gè)工具箱,通過解析文檔為用戶提供需要抓取的數(shù)據(jù)。必備知識(shí)任務(wù)2使用scrapy框架爬取動(dòng)態(tài)數(shù)據(jù)

在上一個(gè)任務(wù)的基礎(chǔ)之上,為了“社會(huì)輿情信息管理系統(tǒng)”獲取更多的動(dòng)態(tài)網(wǎng)頁的信息。我們繼續(xù)爬取高職網(wǎng)站動(dòng)態(tài)網(wǎng)頁的最新信息,并將信息進(jìn)行存儲(chǔ)。我們繼續(xù)使用scrapy爬蟲框架技術(shù)爬取河北工業(yè)職業(yè)技術(shù)學(xué)院的工院新聞頁,將爬取到的網(wǎng)頁源代碼信息保存到hbcit_news.html中,然后提取網(wǎng)頁中新聞列表的標(biāo)題和發(fā)布日期等相關(guān)數(shù)據(jù),并將爬取到的數(shù)據(jù)存儲(chǔ)到hbcit_news.csv中。任務(wù)實(shí)現(xiàn)的關(guān)鍵點(diǎn)是:Scrapy框架的環(huán)境安裝與部署,以及使用scrapy框架爬取動(dòng)態(tài)數(shù)據(jù)的基本過程。任務(wù)分析1.安裝Scrapy

打開cmd命令窗口,運(yùn)行pip命令

pipinstallScrapy任務(wù)實(shí)施2.新建Scrapy項(xiàng)目

首先確定項(xiàng)目目錄,然后打開cmd命令窗口,將命令行路徑切換到自定義的項(xiàng)目目錄,運(yùn)行如下命令創(chuàng)建項(xiàng)目mySpider:scrapystartprojectmySpider

運(yùn)行成功,在PyCharm環(huán)境中可以看到,mySpider項(xiàng)目的自動(dòng)生成的文件和目錄的結(jié)構(gòu)如圖所示3.定義要抓取的數(shù)據(jù)

在items.py文件中定義自己要抓取的數(shù)據(jù)。在PyCharm中打開mySpider目錄下的items.py文件,文件中已經(jīng)自動(dòng)生成里繼承自scrapy.Item的MyspiderItem類,我們只需要修改MyspiderItem類的定義,為它添加屬性即可,添加后代碼如下:任務(wù)實(shí)施importscrapyclassMyspiderItem(scrapy.Item):title=scrapy.Field()#抓取內(nèi)容,新聞標(biāo)題date=scrapy.Field()#抓取內(nèi)容,新聞發(fā)布時(shí)間4.創(chuàng)建爬蟲,爬取網(wǎng)頁的源代碼

首先打開cmd命令窗口,將命令行路徑切換到E:\scrapyPro\mySpider\mySpider\spiders,然后使用創(chuàng)建爬蟲的命令來創(chuàng)建一個(gè)名為hbcit的爬蟲,運(yùn)行代碼如下:任務(wù)實(shí)施scrapygenspiderhbcit""上例中,爬蟲名稱是hbcit,爬取域的范圍為。

運(yùn)行成功后,在PyCharm的mySpider/spiders目錄下會(huì)產(chǎn)生一個(gè)新創(chuàng)建的爬蟲文件hbcit.py。爬蟲程序編寫完畢,在cmd命令窗口中將命令行路徑切換到E:\scrapyPro\mySpider\mySpider\spiders,然后使用運(yùn)行爬蟲的命令來運(yùn)行hbcit爬蟲,運(yùn)行代碼如下:scrapycrawlhbcit4.創(chuàng)建爬蟲,爬取網(wǎng)頁的源代碼

在當(dāng)前文件夾會(huì)產(chǎn)生一個(gè)名稱為hbcit_news.html的靜態(tài)網(wǎng)頁文件,文件內(nèi)容就是使用爬蟲爬取的工院新聞頁的全部源代碼信息,輸出結(jié)果部分截圖如下圖所示:任務(wù)實(shí)施5.分析源代碼,提取數(shù)據(jù)

確定要提取的目標(biāo)數(shù)據(jù),打開hbcit_news.html頁面查看目標(biāo)數(shù)據(jù)所處的網(wǎng)頁結(jié)構(gòu),部分網(wǎng)頁代碼如下:任務(wù)實(shí)施<divclass="navjzny_newslb"><ul><li><span>2020-06-23</span><ahref="../info/1004/5802.htm"target="_blank"title="圓夢(mèng)工院揚(yáng)帆遠(yuǎn)航——我院首屆來華留學(xué)生畢業(yè)典禮隆重舉行">圓夢(mèng)工院揚(yáng)帆遠(yuǎn)航——我院首屆來華留學(xué)生畢業(yè)典禮隆重舉行</a></li><li><span>2020-06-19</span><ahref="../info/1004/5774.htm"target="_blank"title="中國共產(chǎn)黨河北工業(yè)職業(yè)技術(shù)學(xué)院第三次代表大會(huì)勝利閉幕">中國共產(chǎn)黨河北工業(yè)職業(yè)技術(shù)學(xué)院第三次代表大會(huì)勝利閉幕</a></li>......</ul></div>5.分析源代碼,提取數(shù)據(jù)

打開hbcit.py文件,引入mySpider/items.py文件中定義的MyspiderItem類,修改parse()方法,修改代碼如下:任務(wù)實(shí)施importscrapyfrommySpider.itemsimportMyspiderItemclassHbcitSpider(scrapy.Spider):name='hbcit'allowed_domains=['']start_urls=['/zhxw/gyxw.htm']defparse(self,response):items=[]foreachinresponse.xpath("http://div[@class='navjzny_newslb']/ul/li"):item=MyspiderItem()date=each.xpath("span/text()").extract()title=each.xpath("a/text()").extract()item["date"]=date[0]item["title"]=title[0]items.append(item)returnitems5.分析源代碼,提取數(shù)據(jù)

爬蟲程序修改完畢,打開cmd命令窗口,將命令行路徑切換到E:\scrapyPro\mySpider\mySpider\spiders,再次使用運(yùn)行爬蟲的命令來運(yùn)行hbcit爬蟲,運(yùn)行代碼如下:任務(wù)實(shí)施scrapycrawlhbcit

命令執(zhí)行成功后,cmd窗口打印輸出我們所獲取的新聞列表信息,部分輸出結(jié)果如下:2020-07-0614:13:03[scrapy.core.scraper]DEBUG:Scrapedfrom<200/zhxw/gyxw.htm>{'date':'2020-06-05','title':'學(xué)院領(lǐng)導(dǎo)走進(jìn)“云端”課堂,指導(dǎo)課程線上教學(xué)'}2020-07-0614:13:03[scrapy.core.scraper]DEBUG:Scrapedfrom<200/zhxw/gyxw.htm>{'date':'2020-06-03','title':'我院開展疫情防控模擬演練'}2020-07-0614:13:03[scrapy.core.scraper]DEBUG:Scrapedfrom<200/zhxw/gyxw.htm>{'date':'2020-05-29','title':'我院“對(duì)話最美逆行者”專場報(bào)告會(huì)成功舉辦'}6.存儲(chǔ)爬取數(shù)據(jù)

使用Scrapy框架制作爬蟲最后一步就是將獲取的數(shù)據(jù)進(jìn)行輸出存儲(chǔ),我們只需在運(yùn)行爬蟲命令時(shí)添加-o選項(xiàng)然后指定輸出文件格式即可,我們以輸出CSV文件格式為例,運(yùn)行命令為:任務(wù)實(shí)施scrapycrawlhbcit-ohbcit_news.csv

程序運(yùn)行完畢,在當(dāng)前目錄下自動(dòng)創(chuàng)建了hbcit_news.csv文件,我們用Excel或WPS打開,hbcit_news.csv文件部分內(nèi)容截圖如下圖所示:必備知識(shí)1.爬蟲的原理(1)通用網(wǎng)絡(luò)爬蟲的實(shí)現(xiàn)原理及基本過程通用爬蟲是一個(gè)自動(dòng)提取網(wǎng)頁的程序,它為搜索引擎從Internet上下載網(wǎng)頁,是搜索引擎的重要組成部分。爬取網(wǎng)頁的基本流程如下圖所示必備知識(shí)1.爬蟲的原理(2)聚焦網(wǎng)絡(luò)爬蟲的實(shí)現(xiàn)原理及基本過程聚焦網(wǎng)絡(luò)爬蟲的指定原理和過程與通用爬蟲大致相同,在通用爬蟲的基礎(chǔ)上增加兩個(gè)步驟:定義爬取目標(biāo)和篩選過濾URL,原理如下圖所示。必備知識(shí)2.使用Scrapy框架的一般步驟(1)新建項(xiàng)目,基本命令格式:scrapystartproject項(xiàng)目名稱(2)明確目標(biāo),明確想要抓取的目標(biāo),編寫items.py;(3)創(chuàng)建爬蟲,基本命令格式:scrapygenspider爬蟲名稱"爬蟲域"(4)運(yùn)行爬蟲,基本命令格式:scrapycrawl爬蟲名稱(5)保存數(shù)據(jù),基本命令格式:scrapycrawl爬蟲名稱-o保存數(shù)據(jù)的文件名任務(wù)3使用Nutch爬取數(shù)據(jù)

在“社會(huì)輿情信息管理系統(tǒng)”中需要一些物聯(lián)網(wǎng)信息技術(shù)發(fā)展的最新信息,尤其智慧城市發(fā)展的信息動(dòng)態(tài)。為完成此任務(wù),我們使用Nutch來爬取相關(guān)網(wǎng)站,獲取相關(guān)最新動(dòng)態(tài)數(shù)據(jù)信息。Nutch的插件機(jī)制使得開發(fā)者可以靈活地定制網(wǎng)頁抓取策略,在本任務(wù)中,主要介紹了利用Nutch技術(shù)進(jìn)行網(wǎng)頁數(shù)據(jù)爬取的基本過程。我們首先對(duì)Nutch爬取數(shù)據(jù)的環(huán)境安裝與設(shè)置,然后利用Nutch進(jìn)行數(shù)據(jù)爬取,最后利用Solr對(duì)爬取結(jié)果進(jìn)行查詢操作。任務(wù)實(shí)現(xiàn)的關(guān)鍵點(diǎn)是Nutch與Solr的安裝與集成。任務(wù)分析1.安裝JDK和Tomcat網(wǎng)上下載jdk1.8和Tomcat8.5,首先安裝jdk1.8,然后安裝Tomcat,全部采用默認(rèn)安裝。jdk1.8安裝完成以后,環(huán)境變量配置如下圖所示:任務(wù)實(shí)施任務(wù)實(shí)施2.Cygwin安裝:打開官網(wǎng)網(wǎng)頁,下載“setup-x86_64.exe”的文件進(jìn)行安裝。

cygwin官網(wǎng)下載頁面任務(wù)實(shí)施2.Cygwin安裝步驟1:說明界面,單擊“下一步”步驟2:安裝方式選擇默認(rèn)的“InstallfromInternet”步驟3:選擇安裝目錄任務(wù)實(shí)施2.Cygwin安裝步驟4:選擇保存路徑步驟5:選擇連接Internet的方式本案例選擇“DirectConnection”步驟6:添加并選擇下載cygwin的站點(diǎn)任務(wù)實(shí)施2.Cygwin安裝步驟7:下載完成后點(diǎn)擊下一步步驟8:選擇需要下載安裝的組件包步驟9:開始安裝任務(wù)實(shí)施2.Cygwin安裝步驟10:安裝成功步驟11:安裝驗(yàn)證任務(wù)實(shí)施3.Nutch安裝官網(wǎng)下載Nutch。任務(wù)實(shí)施3.Nutch安裝第一步:解壓“apache-nutch-1.9-bin.zip”并將解壓的文件夾“apache-nutch-1.9”完整地拷貝到Cygwin的安裝目錄的“home”文件夾下面。第二步:配置Nutch爬取的網(wǎng)站列表。第三步:配置“apache-nutch-1.9\conf\regex-urlfilter.txt”。第四步:配置“apache-nutch-1.9\conf\nutch-site.xml”。任務(wù)實(shí)施4.Solr安裝及與Tomcat、Nutch集成登錄官網(wǎng)下Solr。本案例下載的版本是4.10.1的文件“solr-4.10.0.zip”。任務(wù)實(shí)施4.Solr安裝及與Tomcat、Nutch集成(1)solr安裝及與Tomcat的集成第一步:將下載下來的“solr-4.10.0.zip”解壓,解壓后的目錄為“solr-4.10.0”。第二步:將solr-4.10.0/example/文件夾下的solr文件夾拷貝到硬盤中的某個(gè)位置,用于solr操作的支持。如本例目錄為“D:\solrHome”。第三步:將solr-4.10.0/example/webapps/目錄下的solr.war復(fù)制到tomcat8.5/webapps目錄下。第四步:將solr-4.10.0/example/lib/ext目錄下的所有的jar包全部拷貝到“tomcat8.5/webapp/solr/WEB-INF/lib”下面。任務(wù)實(shí)施4.Solr安裝及與Tomcat、Nutch集成(2)solr與Nutch的集成將“apache-nutch-1.9/conf/schema-solr4.xml”文件直接拷貝到“d:/solrHome/solr/collection1/conf”下將該目錄已有的“schema.xml”文件刪除,將拷貝過來的“schema-solr4.xml”重命名為“schema.xml”在其中的<fields>...</fields>間添加一行代碼:<fieldname="_version_"type="long"indexed="true"stored="true"/>。任務(wù)實(shí)施5.Nutch爬取數(shù)據(jù)第一步:啟動(dòng)并運(yùn)行Cygwin第二步:轉(zhuǎn)換命令運(yùn)行目錄到Nutch根目錄任務(wù)實(shí)施5.Nutch爬取數(shù)據(jù)第三步:運(yùn)行爬取Nutch的爬取數(shù)據(jù)命令“bin/crawlurls/url.txtTestCrawlhttp://localhost:8080/solr/2”后回車即可開始爬取。任務(wù)實(shí)施6.利用Solr查詢Nutch爬取結(jié)果第一步:Tomcat處于啟動(dòng)狀態(tài)下在瀏覽器中輸入網(wǎng)址“http://localhost:8080/solr/”,點(diǎn)擊左側(cè)的“CoreSelector”并選中自己創(chuàng)建的“collection1”任務(wù)實(shí)施6.利用Solr查詢Nutch爬取結(jié)果第二步:選中“collection1”下面的“Query”,在窗口右側(cè)點(diǎn)擊“ExecuteQuery”,得到爬取結(jié)果ApacheNutch是一個(gè)開源Java實(shí)現(xiàn)的搜索引擎。它提供了用戶運(yùn)行自己的搜索引擎所需的全部工具,包括全文搜索和Web爬蟲。Nutch的版本有多種,沒有最好,適用、穩(wěn)定就是最好。必備知識(shí)本任務(wù)中使用Nutch爬取數(shù)據(jù)的環(huán)境配置為:①Windows8+JDK1.8+Tomcat8.5:基礎(chǔ)環(huán)境,用于支持Nutch和Solr運(yùn)行;②ApacheNutch1.9:用于爬取數(shù)據(jù),只能運(yùn)行在Linux環(huán)境下,在windows環(huán)境下通常采用安裝Cygwin模擬Linux環(huán)境來運(yùn)行Nutch;③Cygwin:windows下模擬運(yùn)行Nutch的環(huán)境;④Solr:是一個(gè)開源搜索平臺(tái),用于構(gòu)建搜索應(yīng)用程序,可用于查詢Nutch爬取的結(jié)果,需要和Tomcat集成單元小結(jié)

本單元首先介紹了爬蟲的概念、功能、類型、組成和原理等相關(guān)基礎(chǔ)知識(shí);之后介紹了靜態(tài)頁面數(shù)據(jù)爬取的基本流程;最后介紹了利用scrapy框架和Nutch技術(shù)爬取數(shù)據(jù)并進(jìn)行數(shù)據(jù)存儲(chǔ)的基本過程。通過本單元內(nèi)容的學(xué)習(xí),學(xué)習(xí)者可以了解爬蟲的相關(guān)概念,并編寫簡單的網(wǎng)絡(luò)爬蟲程序進(jìn)行網(wǎng)頁數(shù)據(jù)的采集。Theend謝謝!使用傳感器進(jìn)行數(shù)據(jù)采集學(xué)習(xí)單元2單元概述“傳感器數(shù)據(jù)采集”主要適用于智慧工廠、智慧農(nóng)業(yè)、智慧醫(yī)療等一些自動(dòng)化程度較高的采集數(shù)據(jù)領(lǐng)域,這些領(lǐng)域不適宜或根本不能用網(wǎng)絡(luò)爬蟲進(jìn)行數(shù)據(jù)采集。本單元介紹了相關(guān)行業(yè)數(shù)據(jù)的特點(diǎn)、傳感器的相關(guān)知識(shí)及一些典型的傳感器數(shù)據(jù)采集系統(tǒng),以拓寬數(shù)據(jù)采集的知識(shí)面,了解大數(shù)據(jù)應(yīng)用的更多領(lǐng)域,為以后的工作提供更寬廣的素材。本學(xué)習(xí)單元以某“蔬菜種植智慧大棚”為例,蔬菜的正常生長,溫濕度數(shù)據(jù)是日常管理中必不可少的重要數(shù)據(jù)之一。將大棚中溫濕度采集并儲(chǔ)于云端,日積月累形成大數(shù)據(jù),就可以進(jìn)行大數(shù)據(jù)分析,并將分析結(jié)果用來指導(dǎo)蔬菜種植。教學(xué)目標(biāo)了解傳感器的相關(guān)知識(shí)和相關(guān)概念,理解傳感器數(shù)據(jù)采集的過程和原理、熟悉傳感器進(jìn)行數(shù)據(jù)采集的一些常用系統(tǒng)。開拓眼界并利用所學(xué)知識(shí)滿足社會(huì)各種需要,堅(jiān)定服務(wù)區(qū)域經(jīng)濟(jì)的決心。技能目標(biāo):了解傳感器數(shù)據(jù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論