Python爬取股票交易數(shù)據(jù)并可視化展示
開發(fā)環(huán)境
解釋器版本: python 3.8
代碼編輯器: pycharm 2021.2
第三方模塊
requests: pip install requests
csv
爬蟲案例的步驟
1.確定url地址(鏈接地址)
2.發(fā)送網(wǎng)絡(luò)請(qǐng)求
3.數(shù)據(jù)解析(篩選數(shù)據(jù))
4.數(shù)據(jù)的保存(數(shù)據(jù)庫(mysql\mongodb\redis), 本地文件)
爬蟲程序全部代碼
分析網(wǎng)頁
打開開發(fā)者工具,搜索關(guān)鍵字,找到正確url


導(dǎo)入模塊
import requests # 發(fā)送網(wǎng)絡(luò)請(qǐng)求 import csv
請(qǐng)求數(shù)據(jù)
url = f'https://xueqiu.com/service/v5/stock/screener/quote/list?page=1&size=30&order=desc&order_by=amount&exchange=CN&market=CN&type=sha&_=1637908787379'
# 偽裝
headers = {
# 瀏覽器偽裝
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36'
}
response = requests.get(url, headers=headers)
json_data = response.json()
解析數(shù)據(jù)
data_list = json_data['data']['list']
for data in data_list:
data1 = data['symbol']
data2 = data['name']
data3 = data['current']
data4 = data['chg']
data5 = data['percent']
data6 = data['current_year_percent']
data7 = data['volume']
data8 = data['amount']
data9 = data['turnover_rate']
data10 = data['pe_ttm']
data11 = data['dividend_yield']
data12 = data['market_capital']
print(data1, data2, data3, data4, data5, data6, data7, data8, data9, data10, data11, data12)
data_dict = {
'股票代碼': data1,
'股票名稱': data2,
'當(dāng)前價(jià)': data3,
'漲跌額': data4,
'漲跌幅': data5,
'年初至今': data6,
'成交量': data7,
'成交額': data8,
'換手率': data9,
'市盈率(TTM)': data10,
'股息率': data11,
'市值': data12,
}
csv_write.writerow(data_dict)
翻頁
對(duì)比1、2、3頁數(shù)據(jù)url,找到規(guī)律

for page in range(1, 56):
url = f'https://xueqiu.com/service/v5/stock/screener/quote/list?page={page}&size=30&order=desc&order_by=amount&exchange=CN&market=CN&type=sha&_=1637908787379'
保存數(shù)據(jù)
file = open('data2.csv', mode='a', encoding='utf-8', newline='')
csv_write = csv.DictWriter(file, fieldnames=['股票代碼','股票名稱','當(dāng)前價(jià)','漲跌額','漲跌幅','年初至今','成交量','成交額','換手率','市盈率(TTM)','股息率','市值'])
csv_write.writeheader()
file.close()
實(shí)現(xiàn)效果


數(shù)據(jù)可視化全部代碼
導(dǎo)入數(shù)據(jù)
import pandas as pd from pyecharts import options as opts from pyecharts.charts import Bar
讀取數(shù)據(jù)
data_df = pd.read_csv('data2.csv')
df = data_df.dropna()
df1 = df[['股票名稱', '成交量']]
df2 = df1.iloc[:20]
print(df2['股票名稱'].values)
print(df2['成交量'].values)
可視化圖表
c = (
Bar()
.add_xaxis(list(df2['股票名稱']))
.add_yaxis("股票成交量情況", list(df2['成交量']))
.set_global_opts(
title_opts=opts.TitleOpts(title="成交量圖表 - Volume chart"),
datazoom_opts=opts.DataZoomOpts(),
)
.render("data.html")
)
print('數(shù)據(jù)可視化結(jié)果完成,請(qǐng)?jiān)诋?dāng)前目錄下查找打開 data.html 文件!')
效果展示?

以上就是Python爬取股票交易數(shù)據(jù)并數(shù)據(jù)可視化的詳細(xì)內(nèi)容,更多關(guān)于Python股票數(shù)據(jù)爬取的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python list 切片倒著取的實(shí)現(xiàn)示例
切片操作非常靈活,可以按照需要獲取列表中的任意一段元素,本文主要介紹了python list 切片倒著取的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01
如何使用matplotlib讓你的數(shù)據(jù)更加生動(dòng)
數(shù)據(jù)可視化用于以更直接的表示方式顯示數(shù)據(jù),并且更易于理解,下面這篇文章主要給大家介紹了關(guān)于如何使用matplotlib讓你的數(shù)據(jù)更加生動(dòng)的相關(guān)資料,需要的朋友可以參考下2021-11-11
解決python中無法自動(dòng)補(bǔ)全代碼的問題
今天小編就為大家分享一篇解決python中無法自動(dòng)補(bǔ)全代碼的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-12-12
python 列表元素左右循環(huán)移動(dòng) 的多種解決方案
這篇文章主要介紹了python 列表元素左右循環(huán)移動(dòng) 的多種解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03
使用Python的requests庫進(jìn)行網(wǎng)頁數(shù)據(jù)抓取的詳細(xì)教程
網(wǎng)絡(luò)爬蟲是一種自動(dòng)化程序,用于從互聯(lián)網(wǎng)上抓取數(shù)據(jù),無論是用于數(shù)據(jù)分析、市場(chǎng)研究、學(xué)術(shù)研究,還是搜索引擎的網(wǎng)頁索引,爬蟲技術(shù)都在現(xiàn)代互聯(lián)網(wǎng)應(yīng)用中發(fā)揮著重要作用,本文將通過 requests 庫 來講解如何進(jìn)行基本的網(wǎng)頁數(shù)據(jù)抓取,需要的朋友可以參考下2025-03-03
Python基于OpenCV實(shí)現(xiàn)視頻的人臉檢測(cè)
這篇文章主要為大家詳細(xì)介紹了Python基于OpenCV實(shí)現(xiàn)視頻的人臉檢測(cè),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
Python圖像處理之目標(biāo)物體輪廓提取的實(shí)現(xiàn)方法
目標(biāo)物體的輪廓實(shí)質(zhì)是指一系列像素點(diǎn)構(gòu)成,這些點(diǎn)構(gòu)成了一個(gè)有序的點(diǎn)集,這篇文章主要給大家介紹了關(guān)于Python圖像處理之目標(biāo)物體輪廓提取的實(shí)現(xiàn)方法,需要的朋友可以參考下2021-08-08
matplotlib共享坐標(biāo)軸的實(shí)現(xiàn)(X或Y坐標(biāo)軸)
在作圖的過程中,我們經(jīng)常會(huì)遇到子圖共用坐標(biāo)軸的情況,或是共用橫軸標(biāo)軸,也可能是縱坐標(biāo)軸。本文就介紹了matplotlib共享坐標(biāo)軸,感興趣的可以了解一下2021-05-05
python Django框架快速入門教程(后臺(tái)管理)
Django 是一個(gè)開放源代碼的 Web 應(yīng)用框架,由 Python 寫成,今天通過本文給大家介紹python Django框架快速入門教程,適用后臺(tái)管理,感興趣的朋友跟隨小編一起看看吧2021-07-07

