Web 想必我們都不陌生,我們現(xiàn)在日常訪問的網(wǎng)站都是 Web 服務程序搭建而成的,Python 同樣不例外也有一些這樣的 Web 服務程序,比如 Flask、Django 等,我們可以拿它來開發(fā)網(wǎng)站,開發(fā)接口等等。
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:國際域名空間、網(wǎng)頁空間、營銷軟件、網(wǎng)站建設、雞東網(wǎng)站維護、網(wǎng)站推廣。
在本書中,我們主要要用到這些 Web 服務程序來搭建一些 API 接口,供我們的爬蟲使用。例如,維護一個代理池,代理保存在 redis 數(shù)據(jù)庫中,我們要將代理池作為一個公共的組件使用,那么如何構(gòu)建一個方便的平臺來供我們?nèi)∮眠@些代理呢?最合適不過的就是通過 Web 服務提供一個 API 接口,我們只需要請求接口即可獲取新的代理,簡單、高效、實用。
在本書中用到的一些 Web 服務程序主要有 Flask、Tornado。
本節(jié)來分別介紹它們的安裝方法。
Flask 是一個輕量級的 Web 服務程序,簡單、易用、靈活,在本書中我們主要用它來做一些 API 服務,本節(jié)我們來了解下它的安裝方式。
pip3?install?flask
運行完畢之后就可以完成安裝。
安裝成功之后可以運行如下實例代碼測試一下:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
??? return "Hello World!"
if __name__ == "__main__":
??? app.run()
Python資源分享qun 784758214 ,內(nèi)有安裝包,PDF,學習視頻,這里是Python學習者的聚集地,零基礎,進階,都歡迎
直接運行代碼,可以發(fā)現(xiàn)系統(tǒng)會在 5000 端口開啟 Web 服務,控制臺輸出如下:
* Running on?http://127.0.0.1:5000/ (Press CTRL+C to quit)
直接訪問:http://127.0.0.1:5000/,可以觀察到網(wǎng)頁中呈現(xiàn)了 Hello World!,如圖 1-41 所示:
[圖片上傳失敗...(image-e4fea-1563957930486)]
圖 1-41 運行結(jié)果
這樣一個最簡單的 Flask 程序就運行成功了。
在后文我們會利用 Flask+Redis 維護動態(tài)代理池和 Cookies 池。
Tornado 是一個支持異步的Web框架,通過使用非阻塞 I/O 流,它可以支撐成千上萬的開放連接,效率非常高,本節(jié)我們介紹一下它的安裝方式。
*GitHub:https://github.com/tornadoweb...
PyPi:https://pypi.python.org/pypi/...
官方文檔:http://www.tornadoweb.org
pip3?install?tornado
執(zhí)行完畢之后即可完成安裝。
同樣在這里我們也可以用一個 Hello World 程序測試一下,代碼如下:
import tornado.ioloop
import tornado.web
class MainHandler(tornado.web.RequestHandler):
??? def get(self):
??????? self.write("Hello, world")
def make_app():
??? return tornado.web.Application([
??????? (r"/", MainHandler),
??? ])
if __name__ == "__main__":
??? app = make_app()
??? app.listen(8888)
??? tornado.ioloop.IOLoop.current().start()
Python資源分享qun 784758214 ,內(nèi)有安裝包,PDF,學習視頻,這里是Python學習者的聚集地,零基礎,進階,都歡迎
直接運行程序,可以發(fā)現(xiàn)系統(tǒng)在 8888 端口運行了 Web 服務,控制臺沒有輸出內(nèi)容,此時訪問:http://127.0.0.1:8888/,可以觀察到網(wǎng)頁中呈現(xiàn)了 Hello, world,如圖 1-42 所示:
圖 1-42 運行結(jié)果
出現(xiàn)上述情景就說明 Tornado 成功安裝了。
在后文我們會利用 Tornado+Redis 來搭建一個 ADSL 撥號代理池。