Python(發音:英[?pa?θ?n],美[?pa?θɑ:n]),是一種面向對象、直譯式電腦編程語言,也是一種功能強大的通用型語言,已經具備近二十年的發展歷史,成熟且穩定。它包含了一組完善並且容易理解的標準庫,可以輕鬆完成不少常見的任務。它的語法很是簡捷和清晰,與其它大多數程序設計語言不同,它使用縮進來定義語句。html
Python支持命令式程序設計、面向對象程序設計、函數式編程、面向切面編程、泛型編程多種編程範式。與Scheme、Ruby、Perl、Tcl等動態語言同樣,Python具有垃圾回收功能,可以自動管理存儲器使用。它常常被看成腳本語言用於處理系統管理任務和網絡程序編寫,然而它也很是適合完成各類高級任務。Python虛擬機自己幾乎能夠在全部的做業系統中運行。使用一些諸如py2exe、PyPy、PyInstaller之類的工具能夠將Python源代碼轉換成能夠脫離Python解釋器運行的程序。前端
這次實戰項目清單:python
WeRoBot框架開發自動回覆微信機器人程序員
Tornado開發後臺web
MongoDB作數據存貯數據庫
Scrapyd部署爬蟲編程
Scrapy編寫爬蟲服務器
把這些都部署在阿里雲服務器上微信
用Python編寫網絡
把這些東西混在一塊兒,就實現了,經過微信公衆號來獲取每日新鮮資訊的功能
廢話很少說,先上圖,看效果!
網頁醜,請原諒我,我不是專門寫前端的,前端知識我會往後補上的。爲何選擇電腦端訪問,由於手機上訪問可能仍是有些限制,可是電腦端訪問徹底沒有問題啊!這效果贊不讚?牛不牛?
開發思路
既然看到了效果,那麼咱們如今就來扯一扯實現這個過程的前因後果。
首先,咱們白日作夢一下, 想着我怎麼可以經過微信公衆號來訪問網站啊?
這裏給出答案:咱們須要一個微信自動回覆的機器人,由於這樣,我就不須要天天本身登錄網頁端,複製黏貼編寫材料了,用電腦來代替個人勞動,這樣我多輕鬆。
這裏就是WeRoBot的使用場景。
接下來,咱們若是有了自動回覆機器人,那麼咱們拿什麼來看呢?
這裏給出答案:咱們須要在遠端架設一臺服務器,上面須要跑起來一套網站的服務。給咱們提供一個網頁,裏面有咱們想要的資訊信息。
這就是阿里雲服務器(騰訊的也能夠)和Tornado的使用場景。
接着,咱們還得研究,我網頁上的數據,從哪裏來啊??
這裏給我出答案:網頁端讀取的數據,都應該是從數據庫中讀的。
這裏就是MongoDB的使用場景。
知道數據從哪裏讀取的了,那麼數據是從哪裏來的啊?
這裏給出答案:數據是來源,咱們能夠經過爬蟲程序來爬下來。
這裏就是Scray的使用場景了。
想到這裏基本差很少了,中間在加一些粘合劑,咱們能夠經過Scrapyd來把爬蟲部署到遠端服務器上,再經過一個定時裝置來定時執行爬蟲程序。這樣咱們就會有源源不斷的數據更新了。而網頁端,咱們只須要展現當天的數據就能夠了。這麼下來,
一切都思路都很完美,就差一個程序員了,對嗎?
咱們選擇用Python來搞事情,由於這個東西,很適合搞事情。
咱們既然把整個邏輯都想好了,那麼咱們倒着來擼這件事情。
接下來,咱們用到了MongoDB
那麼前面提到的這幾個東西,就剩下WeRoBot和Tornado了。這個我準備在下一期文章中詳細給你們講解怎麼開發。這裏面的坑其實還很多,可是,我已經給你們踩過了。你們跟着個人步驟一步一步來就徹底OK。
總體回顧
遠端的服務器上面的爬蟲,是Scrapy寫的蟲子。
經過Tornado的定時執行功能,會每個小時執行一次。
將爬下來的數據存入到MongoDB中。
Tornado的路徑對於的GET方法,會從MongoDB中讀取數據,並傳入到已經寫好的html模板中。
WeRoBot則是依靠Tornado部署的,嵌入到了Tornado服務中。經過微信傳過來的特定的指令,來作出返回結果並返回給客戶端。
Python能夠作什麼?
web開發和 爬蟲是比較適合 零基礎的
自動化運維 運維開發 和 自動化測試 是適合 已經在作運維和測試的人員
大數據 數據分析 這方面 是很須要專業的 專業性相對而言比較強
科學計算 通常都是科研人員 在用
機器學習 和 人工智能 首先 學歷 要求高 其次 高數要求高 難度很大
我有一個微信公衆號,常常會分享一些python技術相關的乾貨;若是你喜歡個人分享,能夠用微信搜索「python語言學習」關注
歡迎你們加入千人交流答疑裙:699+749+852