当当网书籍信息后台统计
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 ...
最新文章
- 文件服务器搭建 xp,xp文件服务器搭建
- Qt控制台输出QString
- 讲真,做Python一定不要只会一个方向!
- Silver Cow Party POJ - 3268(dijkstra+反向交换)
- 【笔记】Java数据结构与算法
- JTable 的使用
- Visio使用注意事项
- Java实现一个简单的两人五子棋游戏(二) 画棋盘
- 1.7 爬取汽车之家实战
- android如何保证多线程安全,保证线程安全的方式有哪几种?
- Web前端大作业 HTML+CSS+JS 防天天生鲜官网 9页
- mysql用户标签表设计_「用户标签」在数据库设计时应该如何存储?
- 色彩对比广告设计_为什么我们都需要使用色彩对比检查器
- 学术英语视听说2听力原文_大学学术英语视听说2-高迎慧
- 计算机硬盘无法启动怎么办,解决办法:如果计算机无法从硬盘启动怎么办
- Android 模拟器 Root 和 SuperSU 安装
- 赠书:支付平台架构业务、规划、设计与实现
- numeric scale mysql_MySQL基础教程1 — 数据类型之数值类型 - numeric
- 保险丝的作用,参数及选型应用,你真的懂了吗——电子元器件篇
- java中的构造方法必须和类名相同,在Java中,关于构造方法,下列说法错误的是()A、构造方法的名称必须与类名相同B、构造方法可以...