只精通爬數據這個技能,以後能有大的發展嗎?
以前去一家公司實習,誤打誤撞開始接觸爬蟲。然後在公司也主要是做爬蟲了。
從小白開始,接觸了gooseeker、火車頭、八爪魚等採集器。以前也是一直用這些工具來採集數據。
在學習過程中,有個疑惑。既然利用這些採集器就可以做到數據的爬取。我還有必要再去深入學習這些編程語言,來做爬蟲嘛?
只做爬蟲的話,是不是發展空間有點太小啦?
謝邀!
做爬蟲有沒有大的發展?答案是肯定的,但是不一定是在爬蟲工程師這個方向。
先說說你要做好爬蟲要了解哪些知識?
1.HTTP 協議:
開發爬蟲 HTTP 協議是首先要了解的,你與 HTTP Server 通訊是基於這個協議,各種請求方式、規則、狀態。只有基本了解了這些才算是邁向開發爬蟲的第一步。
2.Socket 通訊:
爬蟲程序在通訊上的會遇到對方伺服器處理,客戶端等待伺服器相應的情況。這時網路和硬體資源都是閑置的,程序如何更優化的解決這些效率問題?利用 epoll、select 或者多進程、多線程這些都是你根據實際情況需要考慮的。
3.存儲:
如果只是簡單抓點東西當然怎麼存都行,但是如果是長期,大量的抓取那麼怎麼存是你要好好考慮的問題。數據以什麼格式存儲?採用哪類存儲服務?存儲時間?更新周期?等等。這些根據項目的不同都有自己的特點。
4.了解 HTML 做正文識別:
固定的幾個網站可以手工寫模板完成,利用正則、xPath 都可以。但是如果目的是成千上萬的網站,要想識別網站的標題、正文、日期、作者等信息那麼需要知道的就多了,同時再結合我國前端規範程度,你需要精通 HTML 和實體識別技術。
5.對內存存儲有了解:
如果抓取的頁面過百萬,那麼頁面排重就是個需要仔細考慮的問題。為了快速的把沒抓取過的頁面篩選出來,你需要了解內存存儲方式,用來做排重的查詢。數量少用 Hash 表就可以應付,如果數量大那麼可能要實現一個 Bloom Filter ,如果有更加負責的需求那複雜程度可能更高。
6.文章更新頻率預測:
如果每天抓取大量網頁,那麼你會看到發現檢查網站有沒有新文章更新的任務會非常消耗資源,那麼為了解決這個問題你需要利用歷史數據和概率計算來為每個目標網站預測文章更新時間點。
7.分散式技術:
大規模的爬蟲集群需要分散式設計,任務隊列,數據回傳,排重,等等都需要考慮到分散式。
8.運維能力:
控制和管理大量的伺服器,對程序的狀態、任務執行情況、帶寬控制等等都需要你配置工具和寫程序搞定。
9.其他技術:
如果你的爬蟲需要抓取一些有價值的信息,那麼對方肯定是嚴防死守的,如何能夠繞過對方的爬蟲判定規則,ip 切換、行為偽裝、驗證碼識別等等。
這玩意小公司也許可以
感覺也許只能做個副業吧
謝邀. 通過你的描述, 你並不算嚴格意義上的"數據採集工程師", 退一步講, 你基本沒有入門爬蟲. 可參考我的另一個回答.
Python 爬蟲進階? - Mohanson 的回答
爬蟲有沒有前途? 當然有的 ...非常贊同@郭麒的回答。這位同學你還沒入門爬蟲呢。真正的爬蟲是一個複雜的分散式系統,對開發人員的要求極高。需要掌握的知識涵蓋了整個產品開發。沒事你可以看看今日頭條的招聘
謝謝邀請,技多不壓身,造輪子帶來多巴胺的釋放帶來的激情是你意想不到的。如果你有充足的業餘時間,為什麼不嘗試著根據自己的需求量身定做一個爬蟲程序呢,就像我這樣簡單三步走,教你定製自己的個性python爬蟲,代碼都省了有木有~ - 夏洛之楓的文章 - 知乎專欄,來來來,通過造輪子,讓我們談談人生理想……
先說題主的問題,題主想知道爬蟲行業的發展前景,所以先說一下我對這個問題的看法。
現在每天會產生很多的數據,這些數據大部分都沒有被利用起來,這一點不可否認。數據就是信息,現在我們任然在信息時代,那數據其實也就是我們和外界聯繫必不可少的媒介。 我們對於數據的全部行為其本質就是 採集,處理,分析,呈現,幾個步驟,可以說這四個行為,還會持續相當長的一段時間。既然如此,可以說算是一個長青的行業,那麼應該也是有發展前途的吧。畢竟這項工作之後,有關數據的其他活動才能展開。
其次再說一個問題,爬蟲確實容易入門,像 答主
張航 說的那樣,一個星期足夠入門了。但是這東西想要做好,做得完美,並不是只是寫個幾百行的腳本就可以的。要做一個完美的爬蟲系統(還是自己寫框架),確實需要不少的網路知識,尤其是涉及到數據的儲存,以及分散式的技術時,需要的能力更多,這一點十分認可高票答案
郭麒 前輩的回答。
最後,想講一點,其實任何一門技術,只要你鑽研的夠深入,了解得比其他人更透徹,都可以有很大的發展。
簡單來說,技術的發展力其最根本來自於使用技術的人,而非技術。(不好意思,最後有點雞湯了,但是卻真的是大實話)
爬蟲 一般小公司比較多,都當工具用 整的來說 很難跳得高。。
注意積累 只會盲目使用工具是不可取的。
一條路就是研究工具的開發原理 搞清楚源碼 這樣自己可以更花式的使用各種工具 而不是換個新的工具就一臉蒙x 會被時代拋棄的= =
另一條路就是研究爬蟲的底層實現咯,不過這個積累真的需要很久 慢慢來吧
要我說實話?只會用這些爬蟲框架?完全沒用。
或許你可以和大數據來個接觸
暑假投python開發工程師崗,面試的時候才知道全都是做爬蟲的,不過都是小公司。。
推薦閱讀:
※如何獲取鬥魚直播間的彈幕信息?
※有免費的網路爬蟲軟體使用嗎?
※豆瓣是如何屏蔽爬蟲的?
※python爬蟲中文編碼的問題?
※一份優秀的網路爬蟲工程師簡歷是怎麼樣的?