当当网书籍信息后台统计
1.在项目中创建static文件夹-------创建js文件夹-----js文件夹下放echarts.min.js(需要在echarts官网下载)
2.在项目中创建templates文件夹-------创建base.html index.html analyseinfo.html 三个html页面
app.py
from flask import Flask,render_template,request
from mysqlunit import MySql
import pandas as pd
app=Flask(__name__)
global rows
@app.route("/")
def index():global rowsdb=MySql(db="test")sql="select * from books"rows=db.query(sql)print(rows)return render_template("index.html",rows=rows)
@app.route("/tonji")
def showAnalyse():global rowsdf = pd.DataFrame(rows)print(df)df1 = df.groupby("Press").count()["BookId"].sort_values(ascending=False).head()print(df1)return render_template("analyseInfo.html", x=list(df1.index), y=list(df1))if __name__ == '__main__':app.run(debug=True)
mysqlunit.py
import pymysqlclass MySql():# 类的构造方法,实例化对象时,获得连接及游标def __init__(self,db="test"):self.conn=pymysql.connect(host='127.0.0.1',db=db,user="root",passwd="123456")self.cursor=self.conn.cursor(pymysql.cursors.DictCursor)# 通用查询方法,传递sql及sql中数据def query(self,sql,args=None):self.cursor.execute(sql,args=args)return self.cursor.fetchall()# 通用增删改方法,传递sql及sql中数据def update(self,sql,args=None):num=self.cursor.execute(sql,args=args)self.conn.commit()if num:return Trueelse:return False# 关闭资源def close(self):self.conn.close()
base.html
注意:在里面所需要的echarts.min.js文件可以在echarts菜鸟教程里面复制到项目中!在项目的static文件夹下创建js文件夹再在js文件夹下创建js文件(echarts.min.js)
连接如下:
echarts.min.js下载
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><link rel="stylesheet" href="static/css/bootstrap.css">{% block styles %}{% endblock %}
</head>
<body>
<h2 align="center">当当网书籍信息后台统计</h2>
<p> <a href="/tonji"><span class="glyphicon glyphicon-pencil"></span> 前5名出版数量</a><span>|</span><a href="/"><span class="glyphicon glyphicon-th-list"></span> 查看书籍信息</a>
<hr/>
</p>
{% block content %}
{% endblock %}{% block scripts %}
{% endblock %}
</body>
</html>
index.html
{% extends "base.html" %}
{% block content %}<table class="table table-striped"><tr><th>编号</th><th>书名</th><th>价格</th><th>作者</th><th>出版社</th><th>出版日期</th><th>评论数</th></tr>{% for row in rows %}<tr><td>{{ row["BookId"] }}</td><td>{{ row["Title"] }}</td><td>{{ row["Price"] }}</td><td>{{ row["Author"] }}</td><td>{{ row["Press"] }}</td><td>{{ row["PubTime"] }}</td><td>{{ row["Comments"] }}</td></tr>{% endfor %}</table>
{% endblock %}
analyseinfo.html
{% extends "base.html" %}
{% block content %}<script src="static\js\echarts.min.js"></script><div id="main" style="width: 800px;height: 400px;margin: 0 auto"></div><script>// 基于准备好的dom,初始化echarts实例var myChart = echarts.init(document.getElementById('main'));// 指定图表的配置项和数据var option = {title: {text: '前5名出版社数量'},tooltip: {},legend: {data: ['数量']},xAxis: {data: {{x | safe}}},yAxis: {},series: [{name: '数量',type: 'bar',data: {{y | safe}}}]};// 使用刚指定的配置项和数据显示图表。myChart.setOption(option);</script>
{% endblock %}
当当网书籍信息后台统计相关推荐
- 爬虫爬当当网书籍信息
拖了好久的一个爬虫 先上代码 文字慢慢补 update(2018-5-7):加了出版社= = updata(2018-6-29):啥都加了 https://github.com/general10/d ...
- Python 爬虫第三步 -- 多线程爬虫爬取当当网书籍信息
XPath 的安装以及使用 1 . XPath 的介绍 刚学过正则表达式,用的正顺手,现在就把正则表达式替换掉,使用 XPath,有人表示这太坑爹了,早知道刚上来就学习 XPath 多省事 啊.其实我 ...
- python爬虫-爬取当当网书籍信息存到Excel中
文章目录 一.任务 二.分析 (一).单页面的信息分析 源代码分析 目标信息定位与分析 代码设计 (二).所有目标页面链接分析 目标链接分析 代码设计 三.注意要点 四.完整代码 五.参考 一.任务 ...
- Python |(爬虫 )爬取当当网书籍信息存到Excel中
文献检索作业,小白也很无奈.还好有学霸同学的可以借鉴. 一.任务 获取当当网上至少300本书[均为某类书,如Linux相关的书籍,或C++相关的书籍]的信息,包括书名,网址,价格,作者,并存在exce ...
- 基于Pandas和PyEcharts的当当网图书信息可视化分析
1 绘制python图书封面的照片墙 import math import os from PIL import Imagedef makePicturesWall(picdir):picslist ...
- 【python】分析当当网书籍价格、出版社、电子书版本占比数据
前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 又到了学Python时刻~ 本次案例实现目标 书籍基本数据 实现可视化图表 书籍评论数据 评论可以实现词云图 最基本思路流程: <通用> 一. ...
- 当当网书籍数据爬进数据库
当当网书籍数据爬进数据库 首先我们要考虑到当当网有没有反爬机制,几次后发现是没有的. 一开始我们要考虑我们要爬取的信息是哪些,然后在items.py下面全部写出来. 然后就写爬虫文件 从核心文件开始定 ...
- 一位同学的Python大作业【分析当当网书籍价格、出版社、电子书版本占比数据】
目录 前言 本次案例实现目标 最基本思路流程: <通用> 一. 数据来源分析 二. 代码实现步骤过程: 代码实现基本四大步骤 代码实现 获取书籍详情信息 发送请求 解析数据 保存数据 运行 ...
- scrapy框架的简单使用——爬取当当网图书信息
** Scrapy爬取当当网图书信息实例 --以警察局办案为类比 ** 使用Scrapy进行信息爬取的过程看起来十分的复杂,但是他的操作方式与警局办案十分的相似,那么接下来我们就以故事的形式开始Scr ...
最新文章
- PHP、jQuery、jQueryPager结合实现Ajax分页
- java工程师占比_Java过时了吗?
- 统一六国的另一个法宝
- 实验讲解OSPF网络类型
- Xilinx产品与及开发工具2017
- Unity3D笔记 切水果 一
- 模板方法模式(模板方法设计模式)详解
- 极简局域网(windows)桌面同屏软件
- 瑞萨RX23T开发板一键设置库文件说明
- 动态创建iframe页面内容
- 如何使用Transformers和Tokenizers从头开始训练新的语言模型
- 后网盘时代:百度问鼎、阿里紧追、360们跟进
- 如何找到共享的打印机
- 从一个技术人员角度来谈谈10000小时定律
- 关于PS课程中字体部分的学习总结
- 什么是CC攻击?CC攻击的防御措施有哪些?
- Gitlab和AD账号集成,账号登录时报错:Invalid credentials
- 论文:预测原子距离进行构象预测(VAE)
- 力扣练题之876题:链表的中间结点
- 数学建模之matlab软件学习06——专题六 数值微积分与方程求解
热门文章
- pandas数据分析使用技巧
- Windows下最简洁的Linux远程连接软件
- u盘无法识别如何修复?恢复U盘,建议尝试下这些方法
- 基于 Python 官方 GitHub 构建 Python 文档
- 灵图天行者9 pc版_2019十款优化最佳的PC游戏!第一还是冷饭
- CMake添加QT库是出现Policy CMP0020 is not set“警告解决方法
- 2020年焊工(高级)考试内容及焊工(高级)考试总结
- eclipse中spring访问mysql的简易实现
- LXI 仪器中VXI-11协议windows和linux系统实现
- VXI-11基于STM32 LWIP实现