淺談簡單爬蟲架構(gòu)

前言

這個假期我開始系統(tǒng)地學習python,列一下我所知的python學習網(wǎng)站:

  1. 廖雪峰的官方網(wǎng)站
  2. 菜鳥教程
  3. 慕課網(wǎng)
    還有一些歡迎補充。其中菜鳥教程的和廖雪峰的內(nèi)容差不多,不過廖雪峰的內(nèi)容更全面一些,由淺入深,是我學習python基礎知識的主要渠道,在此非常感謝廖老師!慕課網(wǎng)的內(nèi)容則是以視頻的為主,適合不喜歡看文字或者看文字看不懂的同學。

簡單爬蟲架構(gòu)

具體實現(xiàn):簡單爬蟲架構(gòu)的實現(xiàn)
上個假期我用python寫了個簡單的爬蟲Python爬蟲實戰(zhàn):登錄教務系統(tǒng)查成績
而在前兩天我又在慕課網(wǎng)看了一個介紹簡單爬蟲架構(gòu)的視頻,相比我原來寫的簡單爬蟲,這個顯然更易于維護,而且更接近真實項目,很好地運用了面向?qū)ο蟮木幊趟季S。
簡單介紹一下爬蟲架構(gòu)

爬蟲架構(gòu)

簡單爬蟲架構(gòu)

首先一個爬蟲由一個爬蟲調(diào)度端、一個URL管理器、一個網(wǎng)頁下載器、一個網(wǎng)頁解析器組成,并最終得到價值數(shù)據(jù)。

爬蟲工作過程

爬蟲從爬蟲調(diào)度端開始
爬蟲調(diào)度端負責協(xié)調(diào)URL管理器、網(wǎng)頁下載器網(wǎng)頁解析器。
首先它從URL管理器中詢問是否有待爬URL,若有則將待爬URL傳給網(wǎng)頁下載器,網(wǎng)頁下載器將下載的html文件傳給網(wǎng)頁解析器,網(wǎng)頁解析器將按需求解析出價值數(shù)據(jù)以及網(wǎng)頁中新的URL,輸出價值數(shù)據(jù)并將新的URL傳給URL管理器。這就是一個完整的爬蟲過程。
URL管理器負責管理URL,將已爬的和未爬的URL分別儲存起來,能夠輸出未爬的URL。
網(wǎng)頁下載器負責下載URL對應的html頁面。
網(wǎng)頁解析器根據(jù)需求解析出想要的數(shù)據(jù)。(不同需求的爬蟲需設計不同的解析器,而URL管理器和網(wǎng)頁下載器則可以基本不用更改)

具體的實現(xiàn)在這:簡單爬蟲架構(gòu)的實現(xiàn)

面向?qū)ο笏季S

寫到這里,我就突然理解了我們學校讓我們學習編譯原理的目的了。此前我一直認為學校的目的只是讓我們了解一下編譯技術(shù),畢竟每周一節(jié)課,總共也才2.5個學分,要想深入學習,能夠?qū)懗鼍幾g器顯然不現(xiàn)實。現(xiàn)在想想其實這門課更多的是在向我們展示一個成熟完善的大項目,讓我們能夠?qū)Υ笠?guī)模的工程有更好的認識,以及能夠深入理解這種面向?qū)ο蟮木幊谭绞?,體會到面向?qū)ο髱淼谋憷?/p>

在我接觸到這個簡單的爬蟲架構(gòu)以后,我發(fā)現(xiàn)這其實和編譯器的設計原理是一樣的。
編譯器其實是由詞法分析器語法分析器代碼生成器構(gòu)成的,當然中間還經(jīng)過了語義分析、中間代碼生成等過程。其中每部分負責各自的工作,因此我們可以分開設計,將一個大項目分散成小項目,將復雜的任務簡單化。而這樣的思維,便是面向?qū)ο蟮木幊趟季S了。

編譯器分析層次

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容