数据采集
????數據分析的前提就是數據的數量和質量。今天介紹幾種數據源和數據的采集方式。
????從數據采集角度,數據源分為開放數據源、爬蟲抓取、日志采集、傳感器,四類數據源。
????開放數據源和爬蟲聽得比較多(主要是我聽得比較多),所以簡單說一下傳感器和日志采集。傳感器是基于特定的設備,將設備采集的信息進行收集?;静杉氖俏锢硇畔?#xff0c;如圖像、視頻或某物體的速度、熱度、壓強等。日志采集是統計用戶的操作??梢栽谇岸寺顸c,在后端進行腳本收集、統計來分析網站的訪問情況,以及使用瓶頸。下面列舉一些開放的數據源。
如何用爬蟲抓取數據
????爬蟲抓取應該屬于最常見的需求,比如你想要餐廳的評價數據。當然這里要注重版權問題,而且很多網站也是有反爬機制的。最直接的方法就是使用 Python 編寫爬蟲代碼,當然前提是你需要會Python的基本語法。除此之外,PHP 也可以做爬蟲,只是功能不如Python完善,尤其是涉及到多線程的操作。
在 Python 爬蟲中,基本上會經歷三個過程。
1.使用 Requests 爬取內容。我們可以使用Requests庫來抓取網頁信息。Requests 庫可以說是 Python爬蟲的利器,也就是Python的HTTP庫,通過這個庫爬取網頁中的數據,非常方便,可以幫我們節約大量的時間。
2.使用 XPath 解析內容。XPath是XML Path的縮寫,也就是XML路徑語言。它是一種用來確定XML文檔中某部分位置的語言,在開發中經常用來當作小型查詢語言。XPath 可以通過元素和屬性進行位置索引。
3.使用 Pandas 保存數據。Pandas是讓數據分析工作變得更加簡單的高級數據結構,我們可以用 Pandas 保存爬取的數據。最后通過 Pandas 再寫入到 XLS 或者 MySQL 等數據庫中。
????Requests、XPath、Pandas是Python的三個利器。當然做Python爬蟲還有很多利器,比如Selenium,PhantomJS,或者用Puppteteer這種無頭模式。
另外我們也可以不編程就抓取到網頁信息,這里介紹三款常用的抓取工具。
火車采集器(http://www.locoy.com/)
????火車采集器有十幾年的歷史了,不僅可以做抓取工具,也可以做數據清洗、數據分析、數據挖掘和可視化等工作。數據源適合絕大部分的網頁,網頁中能看到的內容都可以通過采集規則進行抓取。
八爪魚(https://www.bazhuayu.com/)
????八爪魚也是知名的采集工具。他有免費的采集模板和云采集(付費)。免費的采集模板實際上是內容采集規則,包括電商類、生活服務類、社交媒體類和論壇類的網站,也可以自定義任務。云采集是當配置好采集任務后,八爪魚云端進行采集,通過云端多節點并發采集,速度遠遠超過本地,可以自動切換多個IP,避免IP被封。很多時候自動轉換IP以及云采集才是自動化采集的關鍵。
集搜客(http://www.gooseeker.com/)
????完全可視化操作,無需編程。缺點是沒有云采集。
日志采集
????日志采集是通過分析用戶訪問情況,提升系統的性能,從而提高系統的承載量,及時發現系統瓶頸,方便技術人員基于用戶的訪問情況進行優化。日志記錄了用戶訪問網站的全過程:什么人通過什么渠道訪問,執行了什么操作,系統是否發生錯誤等。,日志采集有助于我們了解用戶的操作數據,適用于運維監控、安全審計、業務數據分析等場景。一般Web服務器會自帶日志功能,也可以使用Flume從不同的服務器集群中采集、匯總和傳輸大容量的日志數據。當然我們也可以使用第三方的統計工具或自定義埋點得到自己想要的統計內容。
日志采集可以分兩種形式。
1.通過 Web 服務器采集,例如httpd、Nginx、Tomcat都自帶日志記錄功能。同時很多互聯網企業都有自己的海量數據采集工具,多用于系統日志采集,如 Hadoop 的 Chukwa、Cloudera的Flume、Facebook的Scribe等,這些工具均采用分布式架構,能夠滿足每秒數百MB的日志數據采集和傳輸需求。
2.自定義采集用戶行為,例如用 JavaScript 代碼監聽用戶的行為、AJAX 異步請求后臺記錄日志等。
埋點是什么
????埋點是日志采集的關鍵步驟,埋點就是在有需要的位置采集相應的信息,進行上報。比如某頁面的訪問情況,包括用戶信息、設備信息;或者用戶在頁面上的操作行為,包括時間長短等。這就是埋點,每一個埋點就像一臺攝像頭,采集用戶行為數據,將數據進行多維度的交叉分析,可真實還原出用戶使用場景,和用戶使用需求。那我們要如何進行埋點呢?埋點就是在你需要統計數據的地方植入統計代碼,當然植入代碼可以自己寫,也可以使用第三方統計工具。對于埋點這類監測性的工具,市場上已經比較成熟,比如友盟、Google Analysis、Talkingdata等。他們都是采用前端埋點的方式,然后在第三方工具里就可以看到用戶的行為數據。但如果我們想要看到更深層的用戶操作行為,就需要進行自定義埋點。
????數據采集是數據分析的關鍵,很多時候我們會想到Python網絡爬蟲,實際上數據采集的方法、渠道很廣,有些可以直接使用開放的數據源,比如想獲取比特幣歷史的價格及交易數據,可以直接從Kaggle上下載,不需要自己爬取。另一方面根據我們的需求,需要采集的數據也不同,比如交通行業,數據采集會和攝像頭或者測速儀有關。對于運維人員,日志采集和分析則是關鍵。所以我們需要針對特定的業務場景,選擇適合的采集工具。
????歡迎關注個人公眾號:小菜雞的技術之路。二維碼如下:
總結
- 上一篇: 生活经典名句
- 下一篇: 批处理文件总结(三)