python的基本知識點 python經(jīng)典編程題

大家好,今天來為大家解答python的基本知識點這個問題的一些問題點,包括python經(jīng)典編程題也一樣很多人還不知道,因此呢,今天就來為大家分析分析,現(xiàn)在讓我們一起來看...
大家好,今天來為大家解答python的基本知識點這個問題的一些問題點,包括python經(jīng)典編程題也一樣很多人還不知道,因此呢,今天就來為大家分析分析,現(xiàn)在讓我們一起來看看吧!如果解決了您的問題,還望您關(guān)注下本站哦,謝謝~
入門Python爬蟲需要掌握哪些技能和知識點
對于程序員來說基本上不存在重復性的工作,任何重復勞動都可以通過程序自動解決。下面千鋒帶你一起了解爬蟲需要哪些相關(guān)的技能。
1、基本的編碼基礎(chǔ)(至少一門編程語言)
這個對于任何編程工作來說都是必須的。基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)你得會吧。數(shù)據(jù)名字和值得對應(yīng)(字典),對一些url進行處理(列表)等等。事實上,掌握的越牢固越好,爬蟲并不是一個簡單的工作,也并不比其他工作對編程語言的要求更高。
熟悉你用的編程語言,熟悉相關(guān)的框架和庫永遠是百益無害。我主要用Python,用Java寫爬蟲的也有,理論上講任何語言都可以寫爬蟲的,不過最好選擇一門相關(guān)的庫多,開發(fā)迅速的語言。用C語言寫肯定是自找苦吃了。
2、任務(wù)隊列
當爬蟲任務(wù)很大的時候,寫一個程序跑下來是不合適的:
如果中間遇到錯誤停掉,重頭再來?這不科學
我怎么知道程序在哪里失敗了?任務(wù)和任務(wù)之間不應(yīng)該相互影響
如果我有兩臺機器怎么分工?
所以我們需要一種任務(wù)隊列,它的作用是:講計劃抓取的網(wǎng)頁都放到任務(wù)隊列里面去。然后worker從隊列中拿出來一個一個執(zhí)行,如果一個失敗,記錄一下,然后執(zhí)行下一個。這樣,worker就可以一個接一個地執(zhí)行下去。也增加了擴展性,幾億個任務(wù)放在隊列里也沒問題,有需要可以增加worker,就像多一雙虧筷子吃飯一樣。
常用的任務(wù)隊列有kafka,beanstalkd,celery等。
3、數(shù)據(jù)庫
這個不用講了,數(shù)據(jù)保存肯定要會數(shù)據(jù)庫的。不過有時候一些小數(shù)據(jù)也可以保存成json或者csv等。我有時想抓一些圖片就直接按照文件夾保存文件。推薦使用NoSQL的數(shù)據(jù)庫,比如mongodb,因為爬蟲抓到的數(shù)據(jù)一般是都字段-值得對應(yīng),有些字段有的網(wǎng)站有有的網(wǎng)站沒有,mongo在這方面比較靈活,況且爬蟲爬到的數(shù)據(jù)關(guān)系非常非常弱,很少會用到表與表的關(guān)系。
4、HTTP知識
HTTP知識是必備技能。因為要爬的是網(wǎng)頁,所以必須要了解網(wǎng)頁。首先html文檔的解析方法要懂,比如子節(jié)點父節(jié)點,屬性這些。我們看到的網(wǎng)頁是五彩斑斕的,只不過是被瀏覽器處理了而已,原始的網(wǎng)頁是由很多標簽組成的。處理最好使用html的解析器,如果自己用正則匹配的話坑會很多。
5、運維
這個話題要說的有很多,實際工作中運維和開發(fā)的時間差不多甚至更多一些。維護已經(jīng)在工作的爬蟲是一個繁重的工作。隨著工作時間增加,一般我們都會學著讓寫出來的爬蟲更好維護一些。
比如爬蟲的日志系統(tǒng),數(shù)據(jù)量的統(tǒng)計等。將爬蟲工程師和運維分開也不太合理,因為如果一個爬蟲不工作了,那原因可能是要抓的網(wǎng)頁更新了結(jié)構(gòu),也有可能出現(xiàn)在系統(tǒng)上,也有可能是當初開發(fā)爬蟲的時候沒發(fā)現(xiàn)反扒策略,上線之后出問題了,也可能是對方網(wǎng)站發(fā)現(xiàn)了你是爬蟲把你封殺了,所以一般來說開發(fā)爬蟲要兼顧運維。
如果要寫些python相關(guān)文章,大家感興趣的是哪些知識點
Python作為一門簡單好學的語言,現(xiàn)在變得越來越流行了,不用說計算機行業(yè),金融,外貿(mào),甚至傳統(tǒng)的機械行業(yè)都有用到。目前來看,Python的火熱程度應(yīng)該還會持續(xù)很多年,同時Python開發(fā)崗位的需求缺口也很大,Python程序員的工資也相對較高。我是系統(tǒng)架構(gòu)師,從事Python開發(fā)多年,想寫些文章來普及Python,介紹Python開發(fā)經(jīng)驗。但是如果按照世面上的課程安排來講的話,總覺得對初學者不夠友好,因此在此發(fā)帖,征求大家的建議,希望大家不吝賜教,我會參考大家的建議安排課程,謝謝:D
OK,關(guān)于python的基本知識點和python經(jīng)典編程題的內(nèi)容到此結(jié)束了,希望對大家有所幫助。
本文鏈接:http://m.tiantaijiaoyu.cn/qianduan/3341.html