91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何利用scrapy進行八千萬用戶數據爬取與優化

發布時間:2021-12-04 19:27:42 來源:億速云 閱讀:223 作者:柒染 欄目:大數據

如何利用scrapy進行八千萬用戶數據爬取與優化,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

最近準備把數據分析這塊補一下,加上一直在聽喜馬拉雅的直播,有一個比較喜歡的主播,突然萌生了爬取喜馬拉雅所有主播信息以及打賞信息,來找一找喜馬拉雅上比較火的主播和有錢的大哥,看看這些有錢人是怎么揮霍的。

爬取信息分析

打開喜馬拉雅的主播頁面,查看人氣主播

如何利用scrapy進行八千萬用戶數據爬取與優化

第一個是喜馬拉雅好聲音,官方的賬號,很多人的喜馬拉雅賬號應該會默認關注這個。我們看到粉絲關注數有八千多萬,實際的喜馬拉雅用戶量肯定超過這個數值,我們暫且估計可爬取數量為一億,主播頁面只顯示五50頁,每頁20個用戶,我的思路是爬取顯示的主播信息,進入主播主頁

如何利用scrapy進行八千萬用戶數據爬取與優化

爬取相關信息,然后查看粉絲信息

如何利用scrapy進行八千萬用戶數據爬取與優化

粉絲頁只顯示10頁,每頁10個用戶。雖然看起來不多,但是我們可以進行擴展,每個粉絲點進去后又是一個用戶主頁,又可以爬取他的粉絲信息。就這樣一直進行擴展,然后使用去重處理,過濾已經爬取過的用戶數據。

我們要爬取的數據:用戶名、簡介、粉絲數、關注數、聲音、專輯數。

另外還有贊賞信息需要通過APP抓取,我們先抓用戶信息吧。

爬取技術選擇

這么大量的數據爬取,優秀的框架是必不可少的,我們就使用大名鼎鼎的scrapy框架為基礎來進行爬取。另外分布式爬取也是必不可少,雖然我沒有那么多機器去做,但是我琢磨了一下,百度云、阿里云、騰訊云、華為云等一系列云服務器新用戶都有幾天試用期,這集群機器不就有了嗎?嘿嘿

如何利用scrapy進行八千萬用戶數據爬取與優化

數據庫我們使用MongoDB,因為我們的數據并不要求多精確。Redis肯定是必選了。但是作為內存數據庫,占用內存的大小這就是我們必須要考慮的。我們的去重過濾都是放在redis中的,所以必須對齊進行優化。具體原因請看:

redis存儲為什么必須優化?

我先在自己機器上抓取了部分數據,查看redis中的請求列表和去重列表

如何利用scrapy進行八千萬用戶數據爬取與優化

如何利用scrapy進行八千萬用戶數據爬取與優化

從請求列表中的數據量可以知道下載還是比較慢的,這就是為什么我們要用分布式進行爬取了。然后再看去重數據,七十五萬條。不大的數據量,但是看下內存占用情況。

如何利用scrapy進行八千萬用戶數據爬取與優化

如何利用scrapy進行八千萬用戶數據爬取與優化

執行刪除語句flushall后,再查看內存使用情況

如何利用scrapy進行八千萬用戶數據爬取與優化

如何利用scrapy進行八千萬用戶數據爬取與優化

在我8G內存的Mac上占用260M的內存可以忍受,但是在我那可憐的只有1G的云服務器上,卡到我都快鏈接不上了,我們可是以八千萬數據為目標的,實際才爬取了二十多萬條有效數據,去重記錄都七十多萬了,如果到了一億條數據,以目前的情況來看,卡爆服務器也到不了。

本來還有一個xmla:items結構,存儲我們的抓取數據,我把它提取到了MongoDB當中。xmla:requests中是待爬取請求列表,我們爬取下載的時候這個數據量還是會逐漸減少的,至少不會無限增大。但是這個xmla:dupefilter中存取的是去重數據,每一次請求都會記錄下來,所以這個數據只會隨著我們的爬取一直增大。那么這就是我們要進行優化的重點。

下面我們來規劃一下下來要做的事情,按步驟來:

  1. docker環境安裝部署

  2. redis集群配置操作

  3. 用戶數據抓取流程分析

  4. 用戶打賞信息抓取流程分析

  5. 使用BloomFilter修改scrapy-redis,減少過濾內存占用

  6. 反爬處理:IP代理池、User-Agent池

  7. 使用Gerapy和docker部署分布式環境

  8. 抓取數據清理,數據分析規劃

看完上述內容,你們掌握如何利用scrapy進行八千萬用戶數據爬取與優化的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鸡东县| 高雄市| 宁安市| 怀柔区| 南通市| 太仓市| 安新县| 晋城| 双牌县| 利津县| 花莲县| 双峰县| 泊头市| 蕉岭县| 西乌珠穆沁旗| 宝应县| 思南县| 博客| 明光市| 江北区| 涞源县| 赣榆县| 长宁区| 张家港市| 乳山市| 九寨沟县| 两当县| 通海县| 炉霍县| 红河县| 钟祥市| 临桂县| 牡丹江市| 阿合奇县| 枝江市| 青阳县| 乌鲁木齐市| 陆川县| 大庆市| 汕尾市| 鄂托克旗|