前 言
嗨嘍!大家好仁锯,這里是魔王耀找!
課 題:
Python 股票數(shù)據(jù)采集并做數(shù)據(jù)可視化(爬蟲 + 數(shù)據(jù)分析)
課題介紹:
我國股票投資者數(shù)量為15975.24萬戶, 如此多的股民熱衷于炒股,
首先拋開炒股技術(shù)不說, 那么多股票數(shù)據(jù)是不是非常難找,
找到之后是不是看著密密麻麻的數(shù)據(jù)是不是頭都大了?
今天帶大家爬取某平臺的股票數(shù)據(jù)
image
課程亮點
- 系統(tǒng)分析網(wǎng)頁性質(zhì)
- 結(jié)構(gòu)化的數(shù)據(jù)解析
- csv數(shù)據(jù)保存
- 數(shù)據(jù)可視化
開發(fā)環(huán)境 & 第三方模塊:
- 解釋器版本: python 3.8
- 代碼編輯器: pycharm 2021.2
- requests
安裝方法: pip install requests - csv
爬蟲案例的步驟:
- 確定url地址(鏈接地址)
- 發(fā)送網(wǎng)絡(luò)請求
- 數(shù)據(jù)解析(篩選數(shù)據(jù))
-
數(shù)據(jù)的保存(數(shù)據(jù)庫(mysql\mongodb\redis), 本地文件)
image
本次目標(biāo):
image
導(dǎo)入模塊
import requests # 發(fā)送網(wǎng)絡(luò)請求
import csv
代碼
file = open('data2.csv', mode='a', encoding='utf-8', newline='')
csv_write = csv.DictWriter(file, fieldnames=['股票代碼','股票名稱','當(dāng)前價','漲跌額','漲跌幅','年初至今','成交量','成交額','換手率','市盈率(TTM)','股息率','市值'])
csv_write.writeheader()
# 1.確定url地址(鏈接地址)
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'
# 2.發(fā)送網(wǎng)絡(luò)請求
# 偽裝
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()
# print(json_data)
# 3.數(shù)據(jù)解析(篩選數(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)前價': data3,
'漲跌額': data4,
'漲跌幅': data5,
'年初至今': data6,
'成交量': data7,
'成交額': data8,
'換手率': data9,
'市盈率(TTM)': data10,
'股息率': data11,
'市值': data12,
}
csv_write.writerow(data_dict)
file.close()
炒股總結(jié)圖
image
數(shù)據(jù)可視化
"""
數(shù)據(jù)分析: anaconda >>> jupyter notebook 文件格式 .ipynb
"""
import pandas as pd # 做表格處理
data_df = pd.read_csv('data2.csv')
print(data_df)
image
image
好了,我的這篇文章寫到這里就結(jié)束啦!
有更多建議或問題可以評論區(qū)或私信我哦野芒!一起加油努力叭(? ?_?)?
喜歡就關(guān)注一下博主蓄愁,或點贊收藏評論一下我的文章叭!D撮抓!