項目效果。?
本案例基于python的flask框架,通過爬蟲程序?qū)?shù)據(jù)存儲在csv文件中,在項目運行時會通過render_template映射出對應(yīng)的頁面,并且觸發(fā)一個函數(shù),該函數(shù)會讀取csv文件的數(shù)據(jù)將之交給echarts渲染 ,echarts將之渲染到頁面中。
demo.html
from flask import Flask,render_template
import pandas as pd
app = Flask(__name__)
@app.route("/")
def show():
data = pd.read_csv('data.csv',encoding='gbk').to_dict(orient="records")
return render_template("demo.html",data=data)
if __name__ == '__main__':
app.run()
?movie.py
import requests
import re
#獲取頁面信息
url = "https://movie.douban.com/top250"
headers = {
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36 Edg/105.0.1343.27"
}
r = requests.get(url,headers=headers)
r = r.text
#解析頁面
obj = re.compile(r'<li>.*?<span class="title">(?P<name>.*?)</span>.*?'
r'<span>(?P<num>.*?)人評價',re.S)
#匹配
result = obj.finditer(r)
f = open("data.csv",mode="a")
i = 0
f.write("name,value\n")
#輸入
for it in result:
f.write(str(i)+","+it.group("name")+","+it.group("num")+'\n')
i += 1
f.close()
demo.html
<html>
<head>
<style>
*{
margin:0;
padding:0;
}
</style>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.4.2/echarts.min.js"></script>
</head>
<body>
<div id="main" style="width:100%;height:100%;background:gray;"></div>
<script>
var chartDom = document.getElementById('main');
console.log(chartDom);
var myChart = echarts.init(chartDom);
var option;
option = {
title: {
text: 'top',
subtext: 'movie',
left: 'center'
},
tooltip: {
trigger: 'item'
},
legend: {
orient: 'vertical',
left: 'left'
},
series: [
{
name: 'Access From',
type: 'pie',
radius: '50%',
data: {{data|tojson}},
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
]
};
myChart.setOption(option);
</script>
</body>
</html>
data.csv
data.csv由movie.py運行得到。文章來源:http://www.zghlxwxcb.cn/news/detail-666390.html
name,value
0,肖申克的救贖,2908819
1,霸王別姬,2147509
2,阿甘正傳,2168793
3,泰坦尼克號,2199337
4,這個殺手不太冷,2302579
5,千與千尋,2252354
6,美麗人生,1330888
7,辛德勒的名單,1109486
8,星際穿越,1845221
9,盜夢空間,2068413
10,楚門的世界,1717501
11,忠犬八公的故事,1403302
12,海上鋼琴師,1683202
13,三傻大鬧寶萊塢,1864702
14,放牛班的春天,1316000
15,機器人總動員,1320349
16,無間道,1368920
17,瘋狂動物城,1944723
18,控方證人,563523
19,大話西游之大圣娶親,1538921
20,熔爐,934045
21,教父,971356
22,觸不可及,1117970
23,當(dāng)幸福來敲門,1524931
24,末代皇帝,888701
當(dāng)然,我更希望爬蟲程序是自動加載的,可以將之封裝為一個函數(shù),在頁面加載時調(diào)用它。文章來源地址http://www.zghlxwxcb.cn/news/detail-666390.html
到了這里,關(guān)于基于ECharts+flask的爬蟲可視化的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!