本文目錄一覽:
- 1、python編程遇到的幾個坑
- 2、夜曲編程的python坑
- 3、為什麼不建議學python
- 4、python適合做後端開發嗎
- 5、python做後端好嗎
- 6、windows環境的python踩坑記
python編程遇到的幾個坑
1. 爬個別特定網站,不一定得用python寫爬蟲,多數情況wget一條命令多數網站就能爬的不錯,真的玩到自己寫爬蟲了,最終遇到的無非是如何做大做壯,怎麼做分散式爬蟲。scrapy這種價值接近0,非同步或者多線程搞抓取,選一個成熟的基於磁碟的隊列庫,kafka之類的,scrapy幫了啥?
2. http庫眾多,還有gevent庫monkey patch以後coroutine的玩這一選擇,規模千萬的話urllib3很好。
3. 對付網站的諸如登錄、ajax,這種不過是體力民工活,不展開了。
4. 速度很重要,放ec2或者國內的雲上跑,很重要的指標是你每一億網頁爬下來成本多少,爬的時候比如4核一個虛擬機節點,你能inbound貸款用足100mbps嗎。
5. beautifulsoup太慢,全網的爬,encoding的分析也要要快,c實現的chardet還行
最關鍵的,永遠是爬下來以後的信息的提取、分析、使用,就是另外一個話題了。
1.學會使用chrome瀏覽器查看通信以及查看元素格式
2.增加User-Agent, 這是最簡單的反爬措施了
3.寫爬蟲最好使用Ipython,在互動式的環境下,可以時刻了解自己問題具體出在哪裡
4.使用requests
5.用get或者post下好html之後,要確認你需要的東西html裡面有,而不是之後用ajax或者javascript載入的。
6.解析的話,BeautifulSoup不錯。對於少數非常特殊的,可以考慮用re。
7,需要大量採集數據的話,學會使用框架,比如scrapy。
進階:
加入網站需要模擬登陸,裡面使用了很多ajax或者javascript,或者反爬蟲厲害,用requests的session,注意F12查看到底發送了什麼數據。
實在不會,就使用模擬瀏覽器吧,推薦selenium,雖然速度慢點,內存多點,但是真的很省力,而且基本查不出來。
最後,爬蟲速度不要太快,加上time.sleep(1),盡量少用多線程,別人建站也不容易,(尤其是小站)你不給別人帶來很大的麻煩,別人也就睜一隻眼閉一隻眼了,否則封IP不是好玩的。
有些頁面喜歡使用redirect,然而requests的get和post方法中默認是直接跳轉的!很可能你就帶著錯誤的cookies和headers跳轉了,所以務必將allow_redirects參數設為false
夜曲編程的python坑
不坑。
夜曲編程就初學者入門而言是很不錯的,主要有幾個優勢:課程設計:總體設計由淺入深,學習路徑清晰,容易堅持。採用的是卡片模式,每日學習一課,只需花費20來分鐘。且頁面自帶記憶卡片,複雜概念簡單化。
偶然在網上發現了夜曲編程這個軟體。試著跟著學了一下,先是學習的免費課程。第一次學習的時候,這個教程驚艷了我。首先,夜曲編程的教程都是圖文形式的教程,互動式的教學方法讓學習的效率有了很大的提高。夜曲編程出自百詞斬旗下,它通過卡片的形式將一些編程的知識點放入其中,一定程度上可以增進編程的學習效果。
為什麼不建議學python
不建議學python的原因:
1、語言性能差
對於C++老手來說,速度上也根本不具有可比性。一個專業的程序員,寫個C++能用1秒解決問題,用Python可能就需要十幾秒。
2、語法混亂
就舉一個例子,python2與python3這兩個語言版本之間竟然互不支持,這是我在學習其他編程語言當中從來沒見過的。
3、市場混亂
現在國內所謂的Python培訓高薪就業啥的,其實大部分都是騙人的,想學習編程或者入行數據分析,千萬別入Python這個坑,老老實實學習C\C++\JAVA\PHP 才是正道。
4、工作前景不好
那些網上鼓吹的「學會python就能找到好工作」,這純屬就是個偽命題。一個資深程序員的視角出發,實在不建議你將Python作為一種職業,從功利性的角度出發,你學Python是很找到工作的。
python適合做後端開發嗎
python適合後端開發的
Python是一種計算機程序設計語言,既可用於前端還可用於後端開發。它是是一種動態的、面向對象的腳本語言,最初被設計用於編寫自動化腳本(shell),隨著版本的不斷更新和語言新功能的添加,越來越多被用於獨立的、大型項目的開發。在Python中編寫後端可以簡化為編寫各個模塊,其間的連接隨後由前端部分中的用戶操作確定和控制。
Python在設計上堅持了清晰劃一的風格,這使得Python成為一門易讀、易維護,並且被大量用戶所歡迎的、用途廣泛的語言。
設計者開發時總的指導思想是,對於一個特定的問題,只要有一種最好的方法來解決就好了。
Python做後端開發時更適合用Linux系統。
Python歸功於面向方面的語言:它意味著在Python中編寫後端可以簡化為編寫各個模塊,其間的連接隨後由前端部分中的用戶操作確定和控制。
Python被認為是學習中最容易學習的一種,它最大限度地考慮了編譯中的空格和縮進,這大大加快了編碼過程,但增加了粗心錯誤的可能性。但是,與其他語言相比,Python包含的額外字元要少得多。考慮到Python,值得注意的是命令的簡單性。實際上,這種語言中的大多數命令都與自然英語中的相應單詞類似,這使得學習起來更容易。
python做後端好嗎
Python 是一個高層次的結合了解釋性、編譯性、互動性和面向對象的腳本語言。Python 的設計具有很強的可讀性,相比其他語言經常使用英文關鍵字,其他語言的一些標點符號,它具有比其他語言更有特色語法結構。Python 是一種計算機程序設計語言,既可用於前端還可用於後端開發。它是一種動態的、面向對象的腳本語言,最初被設計用於編寫自動化腳本(shell),隨著版本的不斷更新和語言新功能的添加,越來越多被用於獨立的、大型項目的開發。在後端開發中有著極其重要的作用。
相關推薦:《Python教程》
Python 特點:
1.易於學習:Python有相對較少的關鍵字,結構簡單,和一個明確定義的語法,學習起來更加簡單。
2.易於閱讀:Python代碼定義的更清晰。
3.易於維護:Python的成功在於它的源代碼是相當容易維護的。
4.一個廣泛的標準庫:Python的最大的優勢之一是豐富的庫,跨平台的,在UNIX,Windows和Macintosh兼容很好。
5.互動模式:互動模式的支持,您可以從終端輸入執行代碼並獲得結果的語言,互動的測試和調試代碼片斷。
6.可移植:基於其開放源代碼的特性,Python已經被移植到許多平台。
7.可擴展:如果你需要一段運行很快的關鍵代碼,或者是想要編寫一些不願開放的演算法,你可以使用C或C++完成那部分程序,然後從你的Python程序中調用。
windows環境的python踩坑記
雖然使用python有不少時間了,但是基本沒有在windows環境下使用,這不就踩了不少坑,特此記錄如下:
安裝完成後,發現沒有python命令,這個是環境變數的問題,添加就可以了。但是也找不到pip 命令,而進入python裡面,可以import pip 模塊。這時候,需要用 「python -m ensurepip 」 來生成pip命令了,生成之後添加到環境變數就可以直接使用了, 默認情況下pip的路徑: Python_install_path\scripts\pip.exe , 在較新的python版本裡面,已經默認會生成pip 命令,也就是說不需要上述步驟就有pip 命令可以使用了.需要注意的是:
如果遇到執行pip.exe 時候報錯: Fatal error in launcher: Unable to create process using ‘”‘ , 那麼可以嘗試用: python FULL/PATH/OF/PIP/COMMAND 來替帶直接運行 pip, 貌似是無法找到合適的解釋器來運行pip造成的.
如果發現系統中已經安裝了python,但是缺少需要的module, 需要自己安裝,可是不是管理員許可權,沒辦法安裝,python 提供了解決辦法,方法如下:
A.
使用python -m site 命令,該命令會輸出python的sys.path變數的值,以及其他的變數,見如下內容,其中我們可以看到有兩個變數:USER_BASE, USER_SITE. 我們可以把需要的module 安裝到USER_SITE下.
如果不存在相應的路徑,那麼我們可以創建.
B.
有了上述的路徑後,我們在安裝3rd module 的時候,就可以指定安裝路徑了:
pip install MODULE_FILE.PY –target=ABOVE\USER_SITE\PATH
上述方式安裝之後,只有當前用戶可以使用這些新裝的module, 其他用戶是不可以的.
其實這個不能算windows平台的坑了,一般不能import 都是缺少依賴的問題。 那麼我們可以返回pip 命令,首先要知道這個module 的路徑,通過路徑中其他的信息確認這個module所屬的package.
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/302845.html