* 程序前端流程图如图4-2-2所示:
#### 4.2.1 flask框架
* 由于flask网络框架比较轻量,所以Python编写网页比较方便快捷,app.py文件也比较简洁,共有三个页面,@app.route(‘/’)配置主页面路由,@app.route(‘getBook’, methods=[‘GET’])是js文件获取爬取使用,@app.route(‘/error’)配置出错页面的路由。
* 核心代码如下:
```python
APP_ROOT = os.path.dirname(os.path.abspath(__file__))
QidianSpider_static_path = os.path.join(APP_ROOT, '../../QidianSpider') # 爬去到的json文件信息目录
@app.route('/')
def index():
return render_template('index.html')
@app.route('/getBook', methods=['GET'])
def getBook():
# print('-'*100)
# print(QidianSpider_static_path)
# print(type(QidianSpider_static_path))
# print('-'*100)
rst = make_response('{}')
with open(os.path.join(QidianSpider_static_path, 'ebook.json'), 'r') as fp:
dataDict = json.load(fp)
dataStr = json.dumps(dataDict, ensure_ascii=False)
print(dataStr)
# return dataStr
rst = make_response(dataStr)
rst.headers['Access-Control-Allow-Origin'] = '*'
return rst
@app.route('/error')
def error():
return render_template('error.html')
```
* 同时,利用Jinja2模版功能,配置网络路由是返回html格式的模版,比如@app.route(‘/’)的模版
* 网页主页面效果图如图4-2-3所示:

* 核心代码如下:
```html
 }})
 }})
 }})