爬虫主要使用web服务程序来搭建一些API接口,供爬虫使用,例如维护一个代理池,代理保存在Redis数据库中,我们要将代理池作为一个公共的组件使用,那么如何构建一个方便的平台来供我们获取这些代理呢?通过Web服务提供一个API接口,我们只需要请求接口即可获取新的代理。
1.Flask
Flask是一个轻量级的Web服务程序,简单易用,主要用来做一些API服务。
pip install flask
检验安装是否成功
from flask import Flask
app=Flask(__name__)
@app.route("/")
def hello():
return "hello world!"
if __name__=="__main__":
app.run()
2.Tornado
Tornado是一个支持异步的Web框架,通过使用非阻塞I/O流,他可以支撑成千上万的开放连接。
安装:
pip install tornado
测试程序:
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()