沙土花生
爬蟲通常指的是網(wǎng)絡爬蟲,就是一種按照一定的規(guī)則,自動地抓取萬維網(wǎng)信息的程序或者腳本。因為python的腳本特性,python易于配置,對字符的處理也非常靈活,加上python有豐富的網(wǎng)絡抓取模塊,所以兩者經(jīng)常聯(lián)系在一起。
在進入文章之前,我們首先需要知道什么是爬蟲。爬蟲,即網(wǎng)絡爬蟲,大家可以理解為在網(wǎng)絡上爬行的一只蜘蛛,互聯(lián)網(wǎng)就比作一張大網(wǎng),而爬蟲便是在這張網(wǎng)上爬來爬去的蜘蛛,如果它遇到自己的獵物(所需要的資源),那么它就會將其抓取下來。比如它在抓取一個網(wǎng)頁,在這個網(wǎng)中他發(fā)現(xiàn)了一條道路,其實就是指向網(wǎng)頁的超鏈接,那么它就可以爬到另一張網(wǎng)上來獲取數(shù)據(jù)。不容易理解的話其實可以通過下面的圖片進行理解:
因為python的腳本特性,python易于配置,對字符的處理也非常靈活,加上python有豐富的網(wǎng)絡抓取模塊,所以兩者經(jīng)常聯(lián)系在一起。Python爬蟲開發(fā)工程師,從網(wǎng)站某一個頁面(通常是首頁)開始,讀取網(wǎng)頁的內(nèi)容,找到在網(wǎng)頁中的其它鏈接地址,然后通過這些鏈接地址尋找下一個網(wǎng)頁,這樣一直循環(huán)下去,直到把這個網(wǎng)站所有的網(wǎng)頁都抓取完為止。如果把整個互聯(lián)網(wǎng)當成一個網(wǎng)站,那么網(wǎng)絡蜘蛛就可以用這個原理把互聯(lián)網(wǎng)上所有的網(wǎng)頁都抓取下來。
作為一門編程語言而言,Python是純粹的自由軟件,以簡潔清晰的語法和強制使用空白符進行語句縮進的特點從而深受程序員的喜愛。舉一個例子:完成一個任務的話,c語言一共要寫1000行代碼,java要寫100行,而python則只需要寫20行的代碼。使用python來完成編程任務的話編寫的代碼量更少,代碼簡潔簡短可讀性更強,一個團隊進行開發(fā)的時候讀別人的代碼會更快,開發(fā)效率會更高,使工作變得更加高效。
這是一門非常適合開發(fā)網(wǎng)絡爬蟲的編程語言,而且相比于其他靜態(tài)編程語言,Python抓取網(wǎng)頁文檔的接口更簡潔;相比于其他動態(tài)腳本語言,Python的urllib2包提供了較為完整的訪問網(wǎng)頁文檔的API。此外,python中有優(yōu)秀的第三方包可以高效實現(xiàn)網(wǎng)頁抓取,并可用極短的代碼完成網(wǎng)頁的標簽過濾功能。
python爬蟲的構架組成如下圖:
1、URL管理器:管理待爬取的url集合和已爬取的url集合,傳送待爬取的url給網(wǎng)頁下載器;
2、網(wǎng)頁下載器:爬取url對應的網(wǎng)頁,存儲成字符串,傳送給網(wǎng)頁解析器;
3、網(wǎng)頁解析器:解析出有價值的數(shù)據(jù),存儲下來,同時補充url到URL管理器。
而python的工作流程則如下圖:
(Python爬蟲通過URL管理器,判斷是否有待爬URL,如果有待爬URL,通過調度器進行傳遞給下載器,下載URL內(nèi)容,并通過調度器傳送給解析器,解析URL內(nèi)容,并將價值數(shù)據(jù)和新URL列表通過調度器傳遞給應用程序,并輸出價值信息的過程。)
Python是一門非常適合開發(fā)網(wǎng)絡爬蟲的編程語言,提供了如urllib、re、json、pyquery等模塊,同時又有很多成型框架,如Scrapy框架、PySpider爬蟲系統(tǒng)等,本身又是十分的簡潔方便所以是網(wǎng)絡爬蟲首選編程語言!
油墩子2016
因為python的腳本特性,python易于配置,對字符的處理也非常靈活,加上python有豐富的網(wǎng)絡抓取模塊,所以python被叫做爬蟲。
Python爬蟲開發(fā)工程師,從網(wǎng)站某一個頁面(通常是首頁)開始,讀取網(wǎng)頁的內(nèi)容,找到在網(wǎng)頁中的其它鏈接地址,然后通過這些鏈接地址尋找下一個網(wǎng)頁,這樣一直循環(huán)下去,直到把這個網(wǎng)站所有的網(wǎng)頁都抓取完為止。
如果把整個互聯(lián)網(wǎng)當成一個網(wǎng)站,那么網(wǎng)絡蜘蛛就可以用這個原理把互聯(lián)網(wǎng)上所有的網(wǎng)頁都抓取下來。
爬蟲,即網(wǎng)絡爬蟲,大家可以理解為在網(wǎng)絡上爬行的一只蜘蛛,互聯(lián)網(wǎng)就比作一張大網(wǎng),而爬蟲便是在這張網(wǎng)上爬來爬去的蜘蛛,如果它遇到自己的獵物(所需要的資源),那么它就會將其抓取下來。
比如它在抓取一個網(wǎng)頁,在這個網(wǎng)中他發(fā)現(xiàn)了一條道路,其實就是指向網(wǎng)頁的超鏈接,那么它就可以爬到另一張網(wǎng)上來獲取數(shù)據(jù)。
擴展資料:
python的發(fā)展歷程
自從20世紀90年代初Python語言誕生至今,它已被逐漸廣泛應用于系統(tǒng)管理任務的處理和Web編程。
Python的創(chuàng)始人為荷蘭人吉多·范羅蘇姆 (Guido van Rossum)。1989年圣誕節(jié)期間,在阿姆斯特丹,Guido為了打發(fā)圣誕節(jié)的無趣,決心開發(fā)一個新的腳本解釋程序,作為ABC 語言的一種繼承。
之所以選中Python(大蟒蛇的意思)作為該編程語言的名字,是取自英國20世紀70年代首播的電視喜劇《蒙提.派森干的飛行馬戲團》(Monty Python's Flying Circus)。
就這樣,Python在Guido手中誕生了??梢哉f,Python是從ABC發(fā)展起來,主要受到了Modula-3(另一種相當優(yōu)美且強大的語言,為小型團體所設計的)的影響,并且結合了Unix shell和C的習慣。
Python 已經(jīng)成為最受歡迎的程序設計語言之一,自從2004年以后,python的使用率呈線性增長。Python 2于2000年10月16日發(fā)布,穩(wěn)定版本是Python 2.7,Python 3于2008年12月3日發(fā)布,不完全兼容Python 2。
由于Python語言的簡潔性、易讀性以及可擴展性,在國外用Python做科學計算的研究機構日益增多,一些知名大學已經(jīng)采用Python來教授程序設計課程。
例如卡耐基梅隆大學的編程基礎、麻省理工學院的計算機科學及編程導論就使用Python語言講授。眾多開源的科學計算軟件包都提供了Python的調用接口,例如著名的計算機視覺庫OpenCV、三維可視化庫VTK、醫(yī)學圖像處理庫ITK。
參考資料來源:百度百科—python
貝貝塔11
因為python的腳本特性,易于配置,對字符的處理也非常靈活,就像蟲子一樣靈活,故名爬蟲。
Python是完全面向對象的語言。函數(shù)、模塊、數(shù)字、字符串都是對象。并且完全支持繼承、重載、派生、多繼承,有益于增強源代碼的復用性。
Python支持重載運算符和動態(tài)類型。相對于Lisp這種傳統(tǒng)的函數(shù)式編程語言,Python對函數(shù)式設計只提供了有限的支持。有兩個標準庫(functools, itertools)提供了Haskell和Standard ML中久經(jīng)考驗的函數(shù)式程序設計工具。
擴展資料
Python的設計目標之一是讓代碼具備高度的可閱讀性。它設計時盡量使用其它語言經(jīng)常使用的標點符號和英文單字,讓代碼看起來整潔美觀。它不像其他的靜態(tài)語言如C、Pascal那樣需要重復書寫聲明語句,也不像它們的語法那樣經(jīng)常有特殊情況和意外。
Python開發(fā)者有意讓違反了縮進規(guī)則的程序不能通過編譯,以此來強制程序員養(yǎng)成良好的編程習慣。
并且Python語言利用縮進表示語句塊的開始和退出(Off-side規(guī)則),而非使用花括號或者某種關鍵字。增加縮進表示語句塊的開始,而減少縮進則表示語句塊的退出??s進成為了語法的一部分。
例如if語句:python3。
優(yōu)質英語培訓問答知識庫