参考内容:Python3 网络爬虫开发实战-崔庆才
对于 web,我们应该都不陌生,现在日常访问的网站都是 web 服务程序搭建而成的。Python 同样不例外,也有一些这样的 web 服务程序,比如 Flask,Django 等,我们可以拿它来开发网站和借口等。
在这里,我们主要使用这些 Web 服务程序来搭建一些 API 接口,供我们的爬虫使用。例如,维护一个代理池,代理保存在 Redis 数据库中,我们将代理池作为一个公共的组件使用,那么如何构建一个方便的平台来供我们获取这些代理呢?最合适不过的就是通过 web 服务提供一个 API 接口,我们只需要请求接口即可获取新的代理,这样做简单,高效,使用!
Flask 的安装
Flask 是一个轻量级的 web 服务程序,它简单,易用,灵活。这里主要用来做一些 API 服务。
相关链接
- GitHub: https://github.com/pallets/flask
- 官方文档: https://flask.palletsprojects.com/en/1.1.x/
- 中文文档: http://docs.jinkan.org/docs/flask/
- PyPI: https://pypi.org/project/Flask/
安装方式
这里推荐使用 pip 安装,命令如下
1 | pip install flask |
验证安装
安装完成之后,可以运行如下代码测试一下:
1 | from flask import Flask |
可以发现,系统会在 5000 端口开启 web 服务,控制台输出如下:
1 | * Serving Flask app "__main__" (lazy loading) |
直接访问 http://128.0.0.1:5000/,可以观察到网页中呈现出了 Hello World!,如下图,一个最简单 Flask 程序就运行成功了。
后面我们会利用 Flask + Redis 维护动态代理池和 Cookies 池。
Tornado 的安装
Tornado 是一个支持异步的 web 框架,通过使用非阻塞 I/O 流,它可以支撑成千上万的开放连接,效率非常高。
相关链接
- GitHub: https://github.com/tornadoweb/tornado
- PyPI: https://pypi.org/project/tornado/
- 官方文档: https://www.tornadoweb.org/en/stable/
安装方式
这里推荐使用 pip 安装,相关命令如下:
1 | pip install tornado |
验证安装
同样,这里也可以用一个 Hello World 程序测试一下,代码如下:
1 | In [1]: import tornado.ioloop |
直接运行程序,可以发现系统在 8888 端口运行了 web 服务,控制台没有输出内容,此时访问 http://127.0.0.1:8888 可以观察到网页中呈现了 “Hello,World”,如下图:
后面,我们会利用 Tornado + Redis 来搭建一个 ADSL 拨号代理池。