爬蟲 大規模資料 採集心得和示例

2021-09-07 19:22:26 字數 1043 閱讀 5149

本篇主要介紹**資料非常大的採集心得

1.  什麼樣的資料才能稱為資料量大:

我覺得這個可能會因為每個人的理解不太一樣,給出的定義 也不相同。我認為定義乙個採集**的資料大小,不僅僅要看這個**包括的資料量的大小,還應該包括這個**的採集難度,採集**的伺服器承受能力,採集人員所調配的網路頻寬和計算機硬體資源等。這裡我姑且把乙個**超過一千萬個url鏈結的叫做資料量大的**。

2.1 . 採集需求分析:

作為資料採集工程師,我認為最重要的是要做好資料採集的需求分析,首先要預估這個**的資料量大小,然後去明確採集哪些資料,有沒有必要去把目標**的資料都採集下來,因為採集的資料量越多,耗費的時間就越多,需要的資源就越多,對目標**造成的壓力就越大,資料採集工程師不能為了採集資料,對目標**造成太大的壓力。原則是盡量少採集資料來滿足自己的需求,避免全站採集。

2.2. **編寫:

因為要採集的**資料很多,所以要求編寫的**做到穩定執行一周甚至乙個月以上,所以**要足夠的健壯,足夠的強悍。一般要求做到**不變更模板,程式能一直執行下來。這裡有個程式設計的小技巧,我認為很重要,就是**編寫好以後,先去跑一兩個小時,發現程式的一些報錯的地方,修改掉,這樣的前期**測試,能保證**的健壯性。

2.3  資料儲存:

當資料量有三五千萬的時候,無論是mysql還是oracle還是sql server,想在乙個表裡面儲存,已經不太可能了,這個時候可以採用分表來儲存。資料採集完畢,往資料庫插入的時候,可以執行批量插入等策略。保證自己的儲存不受資料庫效能等方面的影響。

2.4 調配的資源:

由於目標**資料很多,我們免不了要去使用大的貸款,記憶體,cpu等資源,這個時候我們可以搞乙個分布式爬蟲系統,來合理的管理我們的資源。

3. 爬蟲的道德

示例:

要採集的目標**有四千萬資料,**的反爬策略是封ip,於是專門找了一台機器,開了二百多個程序去維護ip池,ip池可用的ip在500-1000個,並且保證ip是高度可用的。

個人知識有限,請大牛多多包涵

大規模資料實戰

前後端處理分離解耦,前批處理 有向圖編譯,後端為有向圖優化 自動資源分配 自動監控 錯誤跟蹤 首先我們忘掉所有的框架,我們想做的業務設計其實是就是乙個count 乙個topk 衡量指標很簡單是sla 工程一致性模型,強一致性,弱一致性,最終一致性 cloud spanner 就是強一致性,業務級的資...

Python大規模資料插入Postgresql

需要owner許可權 alter table t rs standard satellite image add constraint unique source product id unique source product id batchinsert批量插入 def batchinsert ...

Bloom Filter 大規模資料處理利器

bloom filter 是由bloom 在1970 年提出的一種多雜湊函式對映的快速查詢演算法。通常應用在一些需要快速判斷某個元素是否屬於集合,但是並不嚴格要求 100 正確的場合。一.例項 為了說明 bloom filter 存在的重要意義,舉乙個例項 假設要你寫乙個網路蜘蛛 web crawl...