999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Scrapy和Hadoop平臺的房屋價格數(shù)據(jù)爬取和存儲系統(tǒng)

2019-10-09 05:48:58丁志毅
電子技術與軟件工程 2019年17期

文/丁志毅

隨著大數(shù)據(jù)、云計算、人工智能等新興計算機技術的急速發(fā)展,所產(chǎn)生的數(shù)據(jù)呈爆炸性增長,如何實現(xiàn)存儲和計算能力的分布式處理,擺脫目前傳統(tǒng)的計算技術和信息系統(tǒng)的處理方式,是目前數(shù)據(jù)分析領域亟待解決的問題。Hadoop 是使用 Java 語言開發(fā)的分布式計算存儲系統(tǒng),是一個由Apache基金會支持的開源項目,提供可靠的,可擴展的分布式系統(tǒng)基礎架構,能夠跨計算機集群分布式存儲海量數(shù)據(jù),允許使用簡單的編程模型分布式處理數(shù)據(jù)。用戶可以像操作本地文件系統(tǒng)一樣透明的訪問HDFS,常應用于海量數(shù)據(jù)的場景。

1 爬蟲系統(tǒng)的設計與實現(xiàn)

1.1 爬蟲基本原理

網(wǎng)絡爬蟲的主要作用是依據(jù)一定的爬行策略自動的從網(wǎng)上下載網(wǎng)頁鏡像到本地,并能夠抓取所有其能夠訪問到的網(wǎng)頁以獲取海量信息,解析其中的數(shù)據(jù)進行分析挖掘等。其基本工作原理如下:首先初始化一個URL作為爬行的開始位置,如果該 URL沒有被抓取過,解析其DNS信息,嘗試與這些 URL鏈接所在的服務器建立連接,自動提取頁面上的信息保存至本地,同時提取新的 URL,根據(jù)一定的遍歷算法將其去重過濾后加入待爬取隊列,重復以上步驟遍歷所有的網(wǎng)頁數(shù)據(jù),直到待爬取的隊列中沒有可用的 URL,滿足停止的條件時結束爬取。

1.2 爬取模塊

圖1:Scrapy爬蟲的流程

圖2:HDFS系統(tǒng)結構

Scrapy是一款開源的網(wǎng)絡爬蟲框架,是使用python 語言開發(fā)并封裝的一個強大的自動數(shù)據(jù)采集框架,目的為了爬取網(wǎng)站內容,提取結構性數(shù)據(jù)。無需再從零開始去設計爬蟲框架,而是可以簡單、高效的搭建python 的 Scrapy 框架,通過 Scrapy 框架提供的功能進行定向的數(shù)據(jù)爬取工作。在 Scrapy 項目中,可以方便地自定義爬蟲的爬取規(guī)則,即可快速獲得所需要的網(wǎng)頁數(shù)據(jù),同時一些固定的前置后續(xù)處理可由一些穩(wěn)定的開源庫幫助解決,并可根據(jù)需要將關鍵數(shù)據(jù)保存為特定的數(shù)據(jù)格式。Scrapy 爬蟲的流程如圖1所示。

Scrapy 強大的功能得益于他的構架,他總共有 8 個部分組成:

1.2.1 Scrapy Engine 組件

爬蟲框架的引擎組件,是整個框架的“大腦“,負責所有組件的數(shù)據(jù)流動。

1.2.2 Scheduler 組件

調度器組件,負責接收并創(chuàng)建請求隊列。

1.2.3 Downloader 組件

下載器組件,負責下載網(wǎng)頁數(shù)據(jù)。

1.2.4 spiders 組件

爬蟲模塊,其功能在于從特定的網(wǎng)頁結構數(shù)據(jù)中獲取指定信息,在 Scrapy 中被定義為實體(Item)。

1.2.5 Pipeline 組件

負責對數(shù)據(jù)進行清理、驗證以及持久化(轉存數(shù)據(jù)庫)的處理。

1.2.6 Downloader middlewares

其在引擎和下載器組件之間,功能是負責引擎發(fā)出的請求,以協(xié)調下載組件工作。

1.2.7 spider middlewares

負責處理爬蟲數(shù)據(jù)的輸入和輸出,主要是為了提高爬蟲質量,可以同時使用不同功能的下載中間件。

2 HDFS存儲模塊

HDFS 采用典型的主從式(master-slave)設計,在該設計中主要包含兩種節(jié)點:主節(jié)點(NameNode)和數(shù)據(jù)節(jié)點(DataNode)。主節(jié)點負責管理整個文件系統(tǒng)的命名空間;另外一種 DataNode是從節(jié)點,為數(shù)據(jù)提供真實的存儲、管理服務。DataNode 最基本的存儲單位是 Block,文件大于 Block 時會被劃分為多個 Block 存儲在不同的數(shù)據(jù)節(jié)點,其元數(shù)據(jù)存儲在NameNode中,全局調度數(shù)據(jù)塊的讀寫操作,主要用于定位block與DadaNode之間的對應關系。用戶如果操作 HDFS 文件時,需要先訪問 NameNode 節(jié)點,讀取元數(shù)據(jù)(metaData)信息,得到存儲位置后再訪問 DateNode 。其架構如圖2所示。

經(jīng)Scrapy采集到的數(shù)據(jù)需要持久化到hdfs中,python語言來訪問Hadoop HDFS時,需要引入pyhdfs庫,通過pyhdfs提供的API接口實現(xiàn)對hdfs的操作。HdfsClient這個類可以連接HDFS的NameNode,用來讀、些、查詢HDFS上的文件。代碼示例:

Client=pyhdfs.HdfsClient(hosts="192.168.1.108,9000",user_name="hadoop")

從本地上傳文件至集群

client.copy_from_local("D:/test.csv","/user/hadoop/test.csv")

打開一個遠程節(jié)點上的文件,返回一個HttpResponse對象

HttpResponse response = client.open("/user/hadoop/test.csv")

3 結語

在房地產(chǎn)市場領域,浩瀚的網(wǎng)絡資源已經(jīng)呈現(xiàn)出大數(shù)據(jù)的特點,傳統(tǒng)的信息處理技術已經(jīng)無法適應需求。針對無法進行有效數(shù)據(jù)分析的現(xiàn)狀,本文研究利用Scrapy網(wǎng)絡爬蟲框架和HDFS 分布式文件系統(tǒng)進行數(shù)據(jù)的采集和存儲。HDFS 能為不斷增長的數(shù)據(jù)提供高度的容錯、高吞吐量和分布式儲存服務。通過提升大數(shù)據(jù)分析技術在房地產(chǎn)行業(yè)中的應用水平,充分利用 Hadoop 平臺的優(yōu)勢,轉變數(shù)據(jù)存儲方式和計算模式,加強數(shù)據(jù)的分析和挖掘,提高政府及有關部門對房地產(chǎn)市場分析的廣度和深度,更好的為政府決策、行業(yè)管理提供決策依據(jù)是下一步的主要研究工作。

主站蜘蛛池模板: 黄色网站不卡无码| 国产成人精品亚洲77美色| 久久美女精品国产精品亚洲| 国产91透明丝袜美腿在线| 蝌蚪国产精品视频第一页| 欧洲av毛片| 国产麻豆aⅴ精品无码| 最新日韩AV网址在线观看| 欧洲一区二区三区无码| 欧洲欧美人成免费全部视频| 精品一区国产精品| 国产欧美日韩91| 亚洲精品无码AV电影在线播放| 欧美中文字幕在线视频 | 国产人成在线视频| 最新痴汉在线无码AV| 精品国产香蕉在线播出| 激情综合激情| 91免费片| 91精品国产91久无码网站| 日本a∨在线观看| 国产精品免费福利久久播放 | 毛片在线播放网址| 亚洲国产精品VA在线看黑人| 国产精品亚洲va在线观看| 精品1区2区3区| 欧美不卡视频在线| 国产香蕉97碰碰视频VA碰碰看 | aⅴ免费在线观看| 97一区二区在线播放| 亚洲Av综合日韩精品久久久| 高清久久精品亚洲日韩Av| 久久久国产精品无码专区| 中文字幕久久亚洲一区| aa级毛片毛片免费观看久| 亚洲天堂在线视频| 国产欧美日韩va另类在线播放| 亚洲精品自产拍在线观看APP| 欧美精品影院| 任我操在线视频| 午夜高清国产拍精品| 精品伊人久久久香线蕉| 国产成人av一区二区三区| 香蕉精品在线| 青青青视频91在线 | 亚洲成人在线网| 99人体免费视频| 伊人久久久久久久| 婷婷综合缴情亚洲五月伊| 伊人久久久久久久| 99视频只有精品| 精品午夜国产福利观看| 国产乱人视频免费观看| 人人91人人澡人人妻人人爽 | 在线观看无码av免费不卡网站| 国产香蕉一区二区在线网站| 久久中文无码精品| 欧美伦理一区| www亚洲精品| 日韩精品无码一级毛片免费| 四虎永久在线精品国产免费| 亚洲成aⅴ人在线观看| 欧洲欧美人成免费全部视频| 人人艹人人爽| 国产精品污视频| 精品无码人妻一区二区| 久久精品人人做人人| 99久久国产自偷自偷免费一区| 精品欧美一区二区三区久久久| 亚洲一区二区视频在线观看| 91精品啪在线观看国产91| 色精品视频| 亚洲国产亚洲综合在线尤物| 亚洲一级毛片| 手机在线看片不卡中文字幕| 五月天在线网站| 波多野结衣AV无码久久一区| 天天躁夜夜躁狠狠躁图片| 丁香亚洲综合五月天婷婷| 午夜一区二区三区| 国产成人在线无码免费视频| 国产不卡一级毛片视频|