2023/9/18 网络爬虫加数据可视化学习(2)
接上回,我们介绍了如何从网页中获取数据并有效提取数据,那么当我们得到这些数据时,这些数据是及其不美观的。因此,我们作为一个合格的美观师,我们需要对这些数据进行 合理展示,更加美观。
1.准备工作
我们这个项目主要用到如下工具:
1.1. 模板之家(根据自己想要的效果选择合适的HTML模板)
1.2. Echarts(开源可视化图表库)
1.3. wordcolud (词云生成器)
1.4. Flask框架(python中一种处理web的框架)
2.Html创建
我们首先将下载好的框架,利用flask框架进行创建flask对象:
app = Flask(__name__) # 创建一个Flask对象,传递__name__参数,Flask用这个参数决定程序的根目录,以便以后能找到相对于程序根目录的资源文件位置
随后我们将自己下载的html模板复制到相应的文件夹中:
其次我们创建不同路由来响应不同的网页内容
@app.route('/')# 路由
def index():
return render_template("index.html")#渲染模板
这样我们的一个框架就算完成了,剩下的就是要进一步完善。
2.1 认识Html
此步,我们需要对html的一些基础知识有所了解,能找到我们想要的修改位置就可以,不需要完全看懂。接下来我将列举一些基础知识点。
一个完整的html框架如下:
剩下的一些知识点只能靠大家,用到什么去查什么了。
3.wordcloud
import jieba #分词
from matplotlib import pyplot as plt #绘图,数据可视化
from wordcloud import WordCloud #词云
from PIL import Image #图片处理
import numpy as np #矩阵运算
import sqlite3 #数据库
#准备词云所需的文字(词)
con = sqlite3.connect('move.db')
cur = con.cursor()
sql = 'select instroduction from movie250'
data = cur.execute(sql)
text = ""
for item in data:
text = text + item[0]
#print(item[0])
#print(text)
cur.close()
con.close()
#分词
cut = jieba.cut(text)
string = ' '.join(cut)
print(len(string))
img = Image.open(r'.\static\assets\img\tree.jpg') #打开遮罩图片
img_array = np.array(img) #将图片转换为数组
wc = WordCloud(
background_color='white',
mask=img_array,
font_path="STKAITI.TTF" #字体所在位置:C:\Windows\Fonts
)
wc.generate_from_text(string)
#绘制图片
fig = plt.figure(1)
plt.imshow(wc)
plt.axis('off') #是否显示坐标轴
plt.savefig('word.jpg',dpi=1000)
plt.show() #显示生成的词云图片
#输出词云图片到文件
4. 完整代码以及项目
由于文件比较多,自己把自己的项目发到附件中,有需要的可以下载。