導航:首頁 > 數據分析 > 爬蟲的數字數據一般怎麼存儲

爬蟲的數字數據一般怎麼存儲

發布時間:2025-09-09 22:58:53

① 一分鍾了解互聯網數據挖掘流程

一分鍾了解互聯網數據挖掘流程

1、爬蟲抓取網路數據

真實的數據挖掘項目,一定是從獲取數據開始的,除了通過一些渠道購買或者下載專業數據外,常常需要大家自己動手爬互聯網數據,這個時候,爬蟲就顯得格外重要了。

Nutch爬蟲的主要作用是從網路上抓取網頁數據並建立索引。我們只需指定網站的頂級網址,如taobao.com,爬蟲可以自動探測出頁面內容里新的網址,從而進一步抓取鏈接網頁數據。nutch支持把抓取的數據轉化成文本,如(PDF、word、EXCEL、HTML、XML等形式)轉換成純文字字元。

Nutch與Hadoop集成,可以將下載的數據保存到hdfs,用於後續離線分析。使用步驟為:

向hdfs中存入待抓取的網站url

$ hadoop fs -put urldir urldir

註:

第一個urldir為本地文件夾,存放了url數據文件,每行一個url地址

第二個urldir為hdfs的存儲路徑。

啟動nutch,在NUTCH_HONE目錄下執行以下命令

$ bin/nutch crawlurldir –dir crawl -depth 3 –topN 10

命令成功執行後,會在hdfs中生成crawl目錄。

2、MapRece預處理數據

對於下載的原始文本文檔,無法直接進行處理,需要對文本內容進行預處理,包括文檔切分、文本分詞、去停用詞(包括標點、數字、單字和其它一些無意義的詞)、文本特徵提取、詞頻統計、文本向量化等操作。

常用的文本預處理演算法是TF-IDF,其主要思想是,如果某個詞或短語在一篇文章中出現的頻率高,並且在其他文章中很少出現,則認為此詞或者短語具有很好的類別區分能力,適合用來做分類。

輸入原始文本內容:

Againit seems that cocoa delivered……

執行TF-IDF預處理:

hadoop jar $JAR ……

輸出文本向量:

9219:0.246 453:0.098 10322:0.21 11947:0.272 ……

每一列是詞及其權重,使用冒號分隔,例如「9219:0.246」表示編號為9219的詞,對應原始單詞為「Again」,其權重值為0.246。

3、Mahout數據挖掘

預處理後的數據就可以用來做數據挖掘。Mahout是一個很強大的數據挖掘工具,是分布式機器學習演算法的集合,包括:協同過濾、分類、聚類等。

以LDA演算法為例,它可以將文檔集中每篇文檔的主題按照概率分布的形式給出。它是一種無監督學習演算法,在訓練時不需要手工標注主題,需要的僅僅是指定主題的數量K。此外LDA的另一個優點則是,對於每一個主題均可找出一些詞語來描述它。

輸入預處理後的數據:

9219:0.246 453:0.098 ……

執行LDA挖掘演算法:

mahout cvb –k 20……

輸出挖掘結果:

topic1 {computer,technology,system,internet,machine}

topic2 {play,film,movie,star,director,proction,stage}

我們可以獲知用戶的偏好是哪些主題,這些主題是由一些關鍵片語成。

4、Sqoop導出到關系資料庫

在某些場景下,需要把數據挖掘的結果導出到關系資料庫,用於及時響應外部應用查詢。

sqoop是一個用來把hadoop和關系型資料庫中的數據相互轉移的工具,可以將一個關系型資料庫(例如:MySQL ,Oracle 等)中的數據導入到hadoop的hdfs中,也可以將hdfs的數據導出到關系型資料庫中:

sqoop export –connect jdbc:mysql://localhost:3306/zxtest –username root–password root –table result_test –export-dir /user/mr/lda/out

export操作實現把hdfs目錄/user/mr/lda/out下數據導出到mysql的result_test表。

② Python編程基礎之(五)Scrapy爬蟲框架

經過前面四章的學習,我們已經可以使用Requests庫、Beautiful Soup庫和Re庫,編寫基本的Python爬蟲程序了。那麼這一章就來學習一個專業的網路爬蟲框架--Scrapy。沒錯,是框架,而不是像前面介紹的函數功能庫。

Scrapy是一個快速、功能強大的網路爬蟲框架。

可能大家還不太了解什麼是框架,爬蟲框架其實是實現爬蟲功能的一個軟體結構和功能組件的集合。

簡而言之, Scrapy就是一個爬蟲程序的半成品,可以幫助用戶實現專業的網路爬蟲。

使用Scrapy框架,不需要你編寫大量的代碼,Scrapy已經把大部分工作都做好了,允許你調用幾句代碼便自動生成爬蟲程序,可以節省大量的時間。

當然,框架所生成的代碼基本是一致的,如果遇到一些特定的爬蟲任務時,就不如自己使用Requests庫搭建來的方便了。

PyCharm安裝

測試安裝:

出現框架版本說明安裝成功。

掌握Scrapy爬蟲框架的結構是使用好Scrapy的重中之重!

先上圖:

整個結構可以簡單地概括為: 「5+2」結構和3條數據流

5個主要模塊(及功能):

(1)控制所有模塊之間的數據流。

(2)可以根據條件觸發事件。

(1)根據請求下載網頁。

(1)對所有爬取請求進行調度管理。

(1)解析DOWNLOADER返回的響應--response。

(2)產生爬取項--scraped item。

(3)產生額外的爬取請求--request。

(1)以流水線方式處理SPIDER產生的爬取項。

(2)由一組操作順序組成,類似流水線,每個操作是一個ITEM PIPELINES類型。

(3)清理、檢查和查重爬取項中的HTML數據並將數據存儲到資料庫中。

2個中間鍵:

(1)對Engine、Scheler、Downloader之間進行用戶可配置的控制。

(2)修改、丟棄、新增請求或響應。

(1)對請求和爬取項進行再處理。

(2)修改、丟棄、新增請求或爬取項。

3條數據流:

(1):圖中數字 1-2

1:Engine從Spider處獲得爬取請求--request。

2:Engine將爬取請求轉發給Scheler,用於調度。

(2):圖中數字 3-4-5-6

3:Engine從Scheler處獲得下一個要爬取的請求。

4:Engine將爬取請求通過中間件發送給Downloader。

5:爬取網頁後,Downloader形成響應--response,通過中間件發送給Engine。

6:Engine將收到的響應通過中間件發送給耐如Spider處理。

(3):圖中數字 7-8-9

7:Spider處理響應後產生爬取項--scraped item。

8:Engine將爬取項發送給Item Pipelines。

9:Engine將爬取請求發送給Scheler。

任務處理流程:從Spider的初始爬取請求開始爬取,Engine控制各模塊數據流,不間斷從Scheler處獲得爬取請求,直至請求為空,最後到Item Pipelines存儲數據結束。

作為用戶,只需配置好Scrapy框架的Spider和Item Pipelines,也就是數據流的入口與出口,便可完成一個爬蟲程序的搭建激含。Scrapy提供了簡單的爬蟲命令語句,幫助用戶一鍵配置剩餘文件,那我們便來看看有哪些好用的命令吧。

Scrapy採用命令行創建和運行爬蟲

PyCharm打開Terminal,啟動Scrapy:

Scrapy基本命令行格式:

具體常用命令如下:

下面用一個例子來學習一下命令的使用:

1.建立一個Scrapy爬蟲工程,在已啟動的Scrapy中繼續輸入:

執行該命令,系統會在PyCharm的工程文件中自動創建一個工程,命明畝笑名為pythonDemo。

2.產生一個Scrapy爬蟲,以教育部網站為例http://www.moe.gov.cn:

命令生成了一個名為demo的spider,並在Spiders目錄下生成文件demo.py。

命令僅用於生成demo.py文件,該文件也可以手動生成。

觀察一下demo.py文件:

3.配置產生的spider爬蟲,也就是demo.py文件:

4.運行爬蟲,爬取網頁:

如果爬取成功,會發現在pythonDemo下多了一個t20210816_551472.html的文件,我們所爬取的網頁內容都已經寫入該文件了。

以上就是Scrapy框架的簡單使用了。

Request對象表示一個HTTP請求,由Spider生成,由Downloader執行。

Response對象表示一個HTTP響應,由Downloader生成,有Spider處理。

Item對象表示一個從HTML頁面中提取的信息內容,由Spider生成,由Item Pipelines處理。Item類似於字典類型,可以按照字典類型來操作。

③ python爬取分析超級大樂透歷史開獎數據

在python入門爬蟲學習中,博主採用requests和beautifulsoup工具,目標是抓取超級大樂透的歷史開獎數據。

爬取的網站是datachart.500.com/dlt/h...,500彩票網的開獎數據實際存儲在頁面源代碼之外,通過查看開發者工具的network標簽可以找到包含所有歷史結果的網頁。

在編寫爬蟲的過程中,博主首先抓取了所有彩票期號及其對應的中獎數字,清晰展示每期的結果。

針對5+2的號碼組合,博主進行了深入分析,特別關注了出現頻率最高的兩個組合。通過初步計算,發現這個特定組合的中獎概率大約是平均中獎幾率的三倍。但為了清晰呈現,這個結果並未直接展示,而是以醒目的紅色標記在生成的csv文件中。

閱讀全文

與爬蟲的數字數據一般怎麼存儲相關的資料

熱點內容
電視桌面文件夾怎麼改不了名字 瀏覽:124
javaarrayarrays 瀏覽:500
proe公差配置文件 瀏覽:72
網站keywordsseo 瀏覽:950
有石果子的版本 瀏覽:992
iphone主屏幕的app怎麼移到下面 瀏覽:644
si4432程序 瀏覽:829
word文檔有幾個版本 瀏覽:320
js不兼容360 瀏覽:581
三星899怎樣升級系統 瀏覽:128
qq100020 瀏覽:973
手機查看文件url地址嗎 瀏覽:259
什麼是資料庫維度 瀏覽:439
lol75版本輔助符文 瀏覽:45
u盤壞了怎麼讀取文件夾 瀏覽:768
js獲取本地文件夾圖片路徑 瀏覽:37
微信發送的電腦桌面文件不顯示 瀏覽:868
微信骰子2點表情gif圖 瀏覽:899
jqueryeasyui教程 瀏覽:650
如何復制配置文件內容 瀏覽:283

友情鏈接