劉陽


摘要: 當今世界已經進入了一個信息化時代,大數據在很多行業中都扮演著十分重要的角色,影響著人們的生產生活方式。本文圍繞數據采集在大數據中的應用展開研究,重點分析了大數據的概念、數據采集的方式方法與如何用Python來進行數據采集。
關鍵詞: 大數據;互聯網;信息;數據采集
中圖分類號: TP212.9;TN929.5?? ?文獻標識碼: A?? ?文章編號: 1672-9129(2018)09-0006-01
Abstract: ?the world has entered an information age. Big data plays a very important role in many industries, influencing people's production and lifestyle. This paper conducts research on the application of data collection in big data, and mainly analyzes the concept of big data, methods and methods of data collection and how to use Python to conduct data collection.
Key words: ??big data;Internet;Information;The data collection
1 大數據概述
大數據的含義是不能夠在一定的時間范圍里面使用常規軟件工具來進行捕捉、管理與處理的數據集合,是需要使用新的處理模式才能夠具有更加強烈的決策能力、洞察能力以及流程優化能力的海量、增長率較高、內容多樣化的信息資產[1]。大數據技術的推廣和使用,最為重要的意義不在于掌握和管理龐大的數據庫,而是對這些含有一定意義的數據作出更加專業化、科學性的處理和利用。換句話來說,如果把大數據看成是一種產業的話,那么這一產業能夠取得經濟利益的關鍵之處,就在于提高對數據的“加工能力”,通過對數據進行加工來做到對數據價值的提升。適用于大數據的技術,包括數據采集、大規模并行處理(MPP)數據庫、數據挖掘、分布式文件系統、分布式數據庫、云計算平臺、互聯網和可擴展的存儲系統。下面我們就大數據采集方式方法做簡單介紹。
2 數據采集的方式方法
2.1系統日志采集方法。絕大部分的互聯網企業都擁有自己專屬的海量數據采集工具,一般是用于對系統日志進行采集,例如Hadoop的Chukwa、Fecebook專用的Scribe以及Cloudera的Flume等等,這些工具都是采取分布式類型的架構,可以滿足很大的使用需求,絕大多數都可以滿足每秒時間內數百MB的日志數據采集以及傳輸需求。
2.2網絡數據采集方法。網絡數據采集方法的意思是說通過利用網絡爬蟲或者是網站公開API等各種方式從網站上面得到相關的數據信息。使用這種方法能夠非常簡單地將一些非結構化的數據從網頁之中抽取出來,并且將這些數據信息統一地存儲在本地的數據文件之中,并且能夠以結構化的形式進行存儲。這種數據采集方法能夠采集圖片數據信息、音頻數據信息以及視頻數據信息,而且也能夠采集附件,附件能夠和正文之間自動地關聯在一起。除了互聯網中包含的一些信息內容之外,對于那些網絡流量進行采集的時候一般會選擇使用DPI或者是DFI等一些寬帶管理技術來進行處理。
2.3其他數據采集方法。對于那些對企業生產經營數據或者是有關學科的研究數據等保密程度要求比較高的數據信息來說,可以采用與企業或者是科學研究機構進行合作的方式,通過使用特定系統接口等一些有關的方式來對數據進行收集。
2.4大數據采集平臺。Apache Flume。Flume是Apache旗下開發出來的一款具有多重優勢的數據采集系統,其具有的優勢主要有可靠度高、擴展性強、管理簡便易行、支持客戶擴展等等。Flume是通過Jruby來進行構建的,因此其運行環境依靠Java來實現。
Splunk Forwarder。Splunk屬于一個分布式類型的機器數據平臺,主要扮演著三個重要的角色:Search Head承擔的主要任務是對數據進行搜索和處理,同時需要提供搜索過程中的信息抽取情況;Indexer主要負責對相關數據進行存儲和索引;Forwarder主要負責對數據進行收集、清洗和變形處理,并且發送給Indexer.
Python屬于一種開源語言,這種語言能夠提供十分豐富的API和工具,能夠通過使用C語言和C++等對這一模塊進行編寫和擴寫,也能夠通過第三方庫來進行,具備非常高的靈活性和適應性,所以說越來越多的人開始選擇通過使用Python來對互聯網數據進行采集和整理。
3 如何用Python進行數據采集
Python數據采集之Scrapy框架,Scrapy是一個快速的屏幕抓取和web抓取框架,用于抓取web站點并從頁面中提取結構化的數據。Scrapy用途廣泛,可以用于數據挖掘、輿情監測和自動化測試。
3.1 Scrapy整體框架。
Scrapy由引擎(Scrapy Engine)、調度器(Scheduler)、下載器(Downloader)、爬蟲(Spiders)、項目管道(Item Pipeline)、下載器中間件(Downloader Middlewares)、爬蟲中間件(Spider Middlewares)、調度中間件(Scheduler Middewares)等部件組成。
3.2 Scrapy運行流程。
(1)引擎打開域名,指定Spider來處理這個域名,獲取第一個要爬取的URL;
(2)引擎從Spider中獲取第要爬取的URL,并在調度器以Request請求調度;
(3)引擎向調度器請求下一個要爬取的URL;
(4)調度返回要爬取的URL給引擎,引擎通過下載中間件將URL發送到下載器;
(5)下載器生成一個該網頁Response響應,將其通過下載中間件發送給引擎;
(6)引擎從下載器接收Response響應,并通過Spider中間發送給Spider;
(7)Spider處理Response響應,并返回爬取到Item和新的Request請求;
(8)引擎將爬取到的Item給Item Pipeline,將Request請求發給調度器;
(9)重復(2)操作,度器中沒有新Request請求,引擎斷開與該域名的鏈接。
3.3 采集實例。獲取某電影網站的排名數據采用Python實現方式如下:
import requests
import re
Url = 'http://dianying.2345.com/top/meiguo.html'
response = requests.get(Url)
html = response.text
#print(html)
#
pattern = re.compile(r'TOP(.*?).*?.*?
主演:.*?.*?
(.*?)
.*?re_result = re.findall(pattern,html)
list = re_result
i =list[:]
for i in list:
print (i)
#print(re_result)'''
pattern = re.compile(r'TOP(.*?)')
re_result = re.findall(pattern,html)
print(re_result)'''
程序運行結果如下:
4 結論
當前,社會已經進入了一個信息化時代,掌握了豐富多彩的信息,也就等于掌握了制勝的關鍵。市場競爭越來越激烈,科學技術的運用能夠為企業的發展增添動力。通過本文的研究也能夠看出,大數據的使用能夠為企業運營和決策帶來諸多的便利。從長遠來看,大數據必然將迎來一個又一個發展高峰,也將為社會的發展帶來更多的機遇和挑戰。
參考文獻:
[1]顧軍林.大數據在農業無人機上的應用研究[J].農機化研究,2018(04):213-217.
[2]黃金國,劉濤,周先春,嚴錫君.基于可變粒度機會調度的網絡大數據知識擴充算法[J/OL].計算機應用研究,2019(03):1-3
[3]王承軍. 高并發大數據在線學習系統中的關鍵技術研究[D].中國地質大學,2015.