色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何理解爬蟲工程師

工程師人生 ? 來源:wv ? 作者:簡書網 ? 2019-09-18 11:39 ? 次閱讀

上個月初,我入職了一家公司,正式開啟了我的爬蟲職業生涯。雖然之前自學或者說自己鉆研并編寫了很多爬蟲,不過當我第一次見到一個完成的爬蟲系統的時候,坦白說,還是覺得挺不可思議的,我大概花了2到3個禮拜對這個系統進行了熟悉,現在在保持對原系統的進行維護的同時,正著手對其進行性能優化。隨著理解的深入,我越發覺得爬蟲工程師的瓶頸其實并不是JS、css之類的前端反混淆技術,也不是requests、BeautifulSoup之類的網頁獲取解析技術,當然也不是僅僅對爬蟲框架的使用。這些技術固然是必須的,但是真正的上升瓶頸還是工程師的素養:如何寫出一個高性能可擴展的爬蟲系統?系統如何兼容數百個甚至數千個不同類型的爬取對象(網站)?如何管理這些爬蟲?如何高效的并發這些爬蟲?如何處理爬取之后的數據?各個子系統之間如何交流?和這些問題比起來,對某個特定網站的爬取的問題只能算是個入門級問題。

對爬蟲工程師的理解

我之前寫了很多關于爬蟲的文章,涉及了各種各樣的爬取策略;也爬了不少主流非主流的網站。從我剛入門爬蟲到現在,每一個爬蟲對應的文章都可以在我的博客上找到,不論是最最簡單的抓取,還是scrapy的使用。

然而爬了這么多網站,按理說應付一位爬蟲工程師的工作應該綽綽有余吧?當然不是,正如我上文所說,在整個爬蟲系統中,如何抓取某個特定的網站其實是最小的任務模塊。而對于一個有爬蟲需求的公司而言,一個能夠長期穩定運行的爬蟲系統才是基本需求。

我從另外一個角度解釋一下這個問題,如果我們將“爬取某個頁面”稱為一個爬蟲任務。那么一般而言,我們會需要定期執行這個爬蟲任務以滿足業務上的需求。比如說,我這有一個爬蟲任務是“爬取某只股票的當前價格”,那么我可能會要求每10s執行一次這個爬蟲任務以達到匯至股價走勢的目的。問題就來了,爬蟲系統如何保證每10s執行這個爬蟲任務呢?time.sleep(10)? crontab?open_signal?send_task?

最簡單的,你可以讓程序執行一次爬蟲任務后sleep10秒,然后無限重復這個循環。嗯,如果只有一個任務,理論上是可行的,此時這個程序就是一種爬蟲系統。那么比這種解決方案略微高端一點的就是寫一個定時任務,每10秒執行一下,這下連爬蟲系統都省了。

但是如果這種爬蟲任務有很多呢?比如說,我要繪制1000個不同股票的股價走勢圖。簡單一點的可以將爬蟲任務改成可接受參數式的,每10s中傳入1000個參數(股票代碼)并用多進程或異步執行這些任務。用scrapy也可以解決這個問題,scrapy其實非常適合這個場景,但是scrapy沒有定時任務,這個時候可能又會需要用到scrapyd和celery。接著,如果有100W個爬蟲任務呢?雖然有些爬蟲只需要簡單調整一下參數,這些任務可以當成同一類爬蟲,但即使去除這些同類型爬蟲,仍然會剩下不同類型的爬蟲任務,比如說30W?那么這30W個任務我們怎么處理,不可能在一個scrapy里寫30W個spider?然后還會涉及到調度,因為每個爬蟲的抓取頻率可能是不一樣的;管理,爬蟲任務可能會根據產品需求出現增刪的情況;爬取結果處理,比如說去重(對100W個結果去重本身也是個不小的事情)、存儲等等。

另外,一個健康的爬蟲生態,一般還需要一個代理池,一個網頁渲染服務器,像爬微博的話可能還需要Cookie池,然后這個系統本身應該是高可用高可擴展的。隨著爬蟲任務數量的增加,各個地方都有可能產生性能瓶頸。這也是我為什么說,爬取任務其實是最小的一環,對于單次任務的執行速度,甚至有時候它的成敗都不是關鍵。

插一句,scrapy仍然是一個很強大很厲害的框架,它是我目前認知里最牛逼的爬蟲框架。它的厲害不在于它可以方便的編寫一個爬蟲,而是它的模塊定制功能,你可以根據實際的產品需求,通過調整中間件或者調度器方便的實現你想要的功能。

但是有時候偶爾會出現一些反爬特別厲害的網站,這個時候就需要對其進行單獨的研究了。另外,我以為手機端抓取其實是一個很關鍵的手段,現在的手機性能強大,能做的事情實在是太多了,只是大多數時候被人忽略了。個人以為這可能會變成今后一個主流的抓取手段。今后我也會開始學習這方面的知識。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 工程師
    +關注

    關注

    59

    文章

    1571

    瀏覽量

    68592
收藏 人收藏

    評論

    相關推薦

    FPGA算法工程師、邏輯工程師、原型驗證工程師有什么區別?

    邏輯工程師和 FPGA 原型驗證工程師在工作重點和職責上存在一定的區別: FPGA 算法工程師: 主要關注算法的設計和優化,以在 FPGA 平臺上實現高效的計算和處理。他們需要深入理解
    發表于 09-23 18:26

    正是拼的年紀|65歲電子工程師上班VLOG #65歲退休 #電子工程師 #搞笑 #上班vlog

    電子工程師
    安泰小課堂
    發布于 :2024年07月25日 11:31:02

    用二創,1:1復刻工程師的職場現狀

    工程師
    揚興科技
    發布于 :2024年07月19日 18:30:07

    3分鐘帶你深度理解|什么是諧振?共振真的能穿墻嗎?#諧振 #共振 #電子學 #電子工程師

    電子工程師諧振
    安泰小課堂
    發布于 :2024年06月11日 18:05:13

    嵌入式軟件工程師和硬件工程師的區別?

    、機器人等。 定義和工作職責 嵌入式軟件工程師的主要職責包括但不限于:設計、開發、測試和調試嵌入式軟件應用程序,以滿足特定硬件和軟件要求。他們需要理解并掌握嵌入式系統的基本原理,熟悉相關硬件接口
    發表于 05-16 11:00

    大廠電子工程師常見面試題#電子工程師 #硬件工程師 #電路知識 #面試題

    電子工程師電路
    安泰小課堂
    發布于 :2024年04月30日 17:33:15

    企業老工程師和高校老師有啥區別

    電子工程師硬件
    電子發燒友網官方
    發布于 :2024年02月28日 17:50:00

    如何搞崩一個硬件工程師心態?試試對ta說這幾句

    硬件工程師
    揚興科技
    發布于 :2024年02月20日 18:05:49
    主站蜘蛛池模板: 亚洲AV国产国产久青草| 亚洲国产精品VA在线看黑人| 哒哒哒高清视频在线观看| 嘟嘟嘟影院免费观看视频| 精品国内自产拍在线观看视频| 陈红下面又紧又小好爽| 国产在线观看www| 国产精品人妻无码久久久蜜桃| 岛国大片在线播放高清| 花蝴蝶高清影视视频在线播放| 秋霞伦理手机在线看片| 漂亮妈妈中文字幕版| 欧美特级午夜一区二区三区| 亚洲bt区| 国产 交换 丝雨 巅峰| 国内2018年午夜福利5678| 精品无人区一区二区三区| 日韩在线 无码 精品| 小柔的性放荡羞辱日记| 99热久久视频只有精品6国产| 99精彩视频在线观看| 极品网红液液酱粉嫩福利照子凌酱| 日本孕妇大胆孕交| avtt天堂网2014| 理论937| 一个人HD在线观看免费高清视频| 国产成人久久AV免费看澳门| 女人18毛片| 99久久久无码国产精品AAA| 久久欧洲视频| 伊人久久影视| 大地影院在线播放| 男人日女人的b| 无码乱人伦一区二区亚洲| 亚洲精品不卡在线| 中文在线观看免费网站| 成年人免费观看视频网站| 欧美日韩中文国产一区| 亚洲蜜芽在线观看精品一区| 国产精品午夜小视频观看| 麻豆精品无码久久久久久久久|