日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

网络爬虫+数据可视化

發(fā)布時間:2023/12/10 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 网络爬虫+数据可视化 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

(1)網(wǎng)頁分析

打開虎撲體育網(wǎng)頁,對網(wǎng)頁進行分析,使用xpath定位相關(guān)元素,提取數(shù)據(jù)

?(2)數(shù)據(jù)爬取

導入相關(guān)的庫:“import ?requests”,“import csv”,利用requests的get()方法爬取數(shù)據(jù),并用csv格式保存數(shù)據(jù)。

編輯爬蟲文件:使用xpath的方法對網(wǎng)頁元素進行定位。

運行代碼并保存數(shù)據(jù)。

參考代碼如下:

import csvf = open('hpty.csv', mode='a', encoding='utf8', newline='') csv_write = csv.DictWriter(f, fieldnames=['排名', '球隊', '球員', '場均得分', '命中率', '三分命中率', '罰球命中率']) csv_write.writeheader() url = 'https://nba.hupu.com/stats/players' head = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36' } nb = requests.get(url, headers=head).text from lxml import etreesb = etree.HTML(nb) whh = sb.xpath('//tbody/tr[not(@class)]') for i in whh:pm = str(i.xpath('./td[1]/text()')).replace("['", "").replace("']", "") # 排名team = str(i.xpath('./td[3]/a/text()')).replace("['", "").replace("']", "") # 球隊name = str(i.xpath('./td[2]/a/text()')).replace("['", "").replace("']", "") # 球員score = str(i.xpath('./td[4]/text()')).replace("['", "").replace("']", "") # 得分mzl = str(i.xpath('./td[6]/text()')).replace("['", "").replace("']", "") # 命中率sfmzl = str(i.xpath('./td[8]/text()')).replace("['", "").replace("']", "") # 三分命中率fqmzl = str(i.xpath('./td[10]/text()')).replace("['", "").replace("']", "") # 罰球命中率print(pm, name, team, score, mzl, sfmzl, fqmzl)data_dict = {'排名': pm, '球隊': team, '球員': name, '場均得分': score, '命中率': mzl, '三分命中率': sfmzl, '罰球命中率': fqmzl}csv_write.writerow(data_dict)f.close()

得到的數(shù)據(jù)如下:

?(3)Excel數(shù)據(jù)可視化圖表:

打開“hpty”數(shù)據(jù)表,選擇“F1:G:11單元格區(qū)域”,然后單擊“插入”選項卡中的“查看所以圖表”按鈕,彈出“插入圖表”對話框,在“所有圖表”選項卡中的選擇“柱形圖”中的任意一種柱形圖類型,如右圖所示。

?(4)Tableau可視化圖表

打開Tableau工具,在開始界面選擇“連接到文件”,在對話框中將“hpty.csv”導入Tableau;單擊“Tableau-工作簿1”界面下方的“工作表1選項”,進入工作表1的界面中,將度量區(qū)域中的“球員”字段拖進到列功能區(qū),把度量值區(qū)域的“場均得分”拉進到行的功能區(qū),就可以得到垂直的柱形圖,如右圖所示。

(5) pyecharts可視化圖表:

代碼:

import pandas as pd import numpy as np import matplotlib.pyplot as plt from pyecharts.charts import Bar from pyecharts import options as opts plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = Falsedf = pd.read_csv(r'D:\努力學python\文章\hpty.csv') df2 = df['場均得分'][:10] df1 = df['球員'][:10] a = (Bar().add_xaxis(list(df1.values)).add_yaxis('球員場均得分', df2.values.tolist()).set_global_opts(title_opts=opts.TitleOpts(title='球員場均得分情況'),datazoom_opts=opts.DataZoomOpts()))a.render('pyecharts.html')

?(6)Pandas數(shù)據(jù)可視化圖表

Pandas使用一維的數(shù)據(jù)結(jié)構(gòu)Series和二維的數(shù)據(jù)結(jié)構(gòu)DataFrame來表示數(shù)據(jù),Pandas可以存儲混合的數(shù)據(jù)結(jié)構(gòu)。

import pandas as pd import numpy as np import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False df = pd.read_csv(r'D:\努力學python\文章\hpty.csv') data = pd.DataFrame(list(df['場均得分'][:10]),index=df['球員'][:10])data.plot.bar(color='b') plt.show()

?

總結(jié)

以上是生活随笔為你收集整理的网络爬虫+数据可视化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。