国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

簡單的用Python采集股票數(shù)據(jù),保存表格后分析歷史數(shù)據(jù)

這篇具有很好參考價值的文章主要介紹了簡單的用Python采集股票數(shù)據(jù),保存表格后分析歷史數(shù)據(jù)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言

字節(jié)跳動如果上市,那么鐘老板將成為我國第一個世界首富

簡單的用Python采集股票數(shù)據(jù),保存表格后分析歷史數(shù)據(jù)
趁著現(xiàn)在還沒上市,咱們提前學(xué)習(xí)一下用Python分析股票歷史數(shù)據(jù),抱住粗大腿坐等起飛~

好了話不多說,我們直接開始正文

準備工作

環(huán)境使用

  • Python 3.10 解釋器
  • Pycharm 編輯器

模塊使用

  • requests —> 數(shù)據(jù)請求模塊
  • csv -> 保存csv表格
  • pandas -> 可以實現(xiàn)保存Excel表格文件

requestspandas是第三方模塊,需要手動安裝,直接pip install 加上模塊名字即可。

案例實現(xiàn)流程

數(shù)據(jù)來源分析

  1. 明確需求: 明確采集的網(wǎng)站以及數(shù)據(jù)內(nèi)容
    - 網(wǎng)址: 雪球網(wǎng)
    - 數(shù)據(jù): 股票數(shù)據(jù)
  2. 抓包分析: 分析 股票數(shù)據(jù), 可以請求那個網(wǎng)址能夠得到
    - 打開開發(fā)者工具: F12 / 右鍵點擊檢查選擇 network (網(wǎng)絡(luò))
    - 點擊第二頁數(shù)據(jù)
    數(shù)據(jù)包: https://stock.xueqiu.com/v5/stock/screener/quote/list.json?page=2&size=30&order=desc&order_by=amount&exchange=CN&market=CN&type=sha
    請求網(wǎng)址:
    請求方式:
    請求頭:

代碼實現(xiàn)步驟

  1. 發(fā)送請求 -> 模擬瀏覽器對于url發(fā)送請求
  2. 獲取數(shù)據(jù) -> 獲取服務(wù)器返回響應(yīng)數(shù)據(jù) <整個數(shù)據(jù)>
  3. 解析數(shù)據(jù) -> 提取我們需要數(shù)據(jù)
  4. 保存數(shù)據(jù) -> 保存表格文件 < csv / Excel > 中

代碼解析

保存表格文件

  1. csv -> csv模塊
  2. Excel -> pandas模塊
# 創(chuàng)建文件對象
f = open('股票.csv', mode='w', encoding='utf-8', newline='')
# fieldnames 字段名 表頭一行數(shù)據(jù) <前面保存字典的鍵>
csv_writer= csv.DictWriter(f, fieldnames=[
    '股票代碼',
    '股票名稱',
    '當前價',
    '漲跌額',
    '漲跌幅',
    '年初至今',
    '成交量',
    '成交額',
    '換手率',
    '市盈率(TTM)',
    '股息率',
    '市值',
])
# 寫入表頭
csv_writer.writeheader()
# 創(chuàng)建一個空列表
content_list = []
# 源碼領(lǐng)取摳裙:815624229

?

?

發(fā)送請求

模擬瀏覽器對于url發(fā)送請求

  • 模擬瀏覽器: headers 請求頭
    • 從瀏覽器開發(fā)者工具中直接復(fù)制
    • 字典數(shù)據(jù)類型, 構(gòu)建完整鍵值對形式
  • 請求網(wǎng)址:
    從瀏覽器開發(fā)者工具中直接復(fù)制
  • 發(fā)送請求:
    需要requests模塊 -> pip install requests

<Response [200]> 響應(yīng)對象 表示請求成功

# 模擬瀏覽器
headers = {
    'Cookie': 's=av17ye9exq; xq_a_token=cf755d099237875c767cae1769959cee5a1fb37c; xq_r_token=e073320f4256c0234a620b59c446e458455626d9; xq_id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ1aWQiOi0xLCJpc3MiOiJ1YyIsImV4cCI6MTcwMTk5NTg4MCwiY3RtIjoxNzAwNTYzOTE3MDU2LCJjaWQiOiJkOWQwbjRBWnVwIn0.EbAa9h0fB9H_sH415f3x8r2CQiKmPbXZMnuKCy401scB1lMQKOffws6WTwPD2UzFWnntYxIQYSJpX509VUYYgCQkZ_bYtLbtYd5PfxLhWx7coauYA4d3x5aZolzB3eP5IthaYAb0Kbj3MPK8LVRBhABpRGr4wajISuABFNezroM_-5dpiOYK7Rk0UXtU2Qhrzxi1BVCgFUhPP-oR_vKenBw5tLzSqa6aO7CukgI7JVb-6LiymuBquE8FE-de8Vs3evai0fvtjiqryrH3EWM3nmDQIayigHRrYo595bD32kUPP4swHF5U2fwbLHTntIRAm9LsXn8sVf-6sUdgHoYZGg; cookiesu=931700563933974; u=931700563933974; device_id=5da9e0ae658f9fcd3d89078312131fb7; Hm_lvt_1db88642e346389874251b5a1eded6e3=1700563934; Hm_lpvt_1db88642e346389874251b5a1eded6e3=1700563934',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36'
}
for page in range(1, 58):
    print(f'==============正在采集第{page}頁數(shù)據(jù)內(nèi)容==============')
    # 請求網(wǎng)址
    url = f'https://stock.xueqiu.com/v5/stock/screener/quote/list.json?page={page}&size=30&order=desc&order_by=amount&exchange=CN&market=CN&type=sha'
    # 發(fā)送請求
    response = requests.get(url=url, headers=headers)

?

獲取數(shù)據(jù)

獲取服務(wù)器返回響應(yīng)數(shù)據(jù) <整個數(shù)據(jù)>

  • response.text 獲取響應(yīng)文本數(shù)據(jù) <字符串>
  • response.json() 獲取響應(yīng)json數(shù)據(jù) <json數(shù)據(jù) 大部分情況字典數(shù)據(jù)>
  • response.content 獲取響應(yīng)二進制數(shù)據(jù) <保存圖片/視頻/音頻/特定格式文件的時候>

解析數(shù)據(jù)

提取我們需要數(shù)據(jù)
解決數(shù)據(jù)方法根據(jù)獲取數(shù)據(jù)來選擇的:
字典取值方法 -> 鍵值對取值 (根據(jù)冒號左邊的內(nèi)容[鍵], 提取冒號右邊的內(nèi)容[值])

json_data = response.json()  # 返回json字典數(shù)據(jù)
# for循環(huán)遍歷
for index in json_data['data']['list'][1:]:
    # 提取數(shù)據(jù)保存到字典里面, 方便后續(xù)保存表格文件
    dit = {
        '股票代碼': index['symbol'],
        '股票名稱': index['name'],
        '當前價': index['current'],
        '漲跌額': index['chg'],
        '漲跌幅': index['percent'],
        '年初至今': index['current_year_percent'],
        '成交量': index['volume'],
        '成交額': index['amount'],
        '換手率': index['turnover_rate'],
        '市盈率(TTM)': index['pe_ttm'],
        '股息率': index['dividend_yield'],
        '市值': index['market_capital'],
    }
    # 保存數(shù)據(jù)
    csv_writer.writerow(dit)
    # 把字典添加到空列表里面
    content_list.append(dit)
    print(dit)

?

效果展示

獲取到數(shù)據(jù)保存到表格后

簡單的用Python采集股票數(shù)據(jù),保存表格后分析歷史數(shù)據(jù)

?

簡單的用Python采集股票數(shù)據(jù),保存表格后分析歷史數(shù)據(jù)

采集數(shù)據(jù)和可視化分析部分的代碼我都打包好了,下方源碼中自取。

簡單的用Python采集股票數(shù)據(jù),保存表格后分析歷史數(shù)據(jù)

?

簡單的用Python采集股票數(shù)據(jù),保存表格后分析歷史數(shù)據(jù)

可視化分析

import pandas as pd         # 做表格數(shù)據(jù)處理模塊 第三方的
from pyecharts.charts import Bar    # 可視化模塊 第三方模塊
from pyecharts import options as opts   # 可視化模塊里面的設(shè)置模塊(圖表樣式)
 
# 1. 讀取數(shù)據(jù)
# 源碼領(lǐng)取+摳裙 815624229
df = pd.read_csv('股票.csv')
x = list(df['股票名稱'].values)
y = list(df['成交量'].values)
 
c = (
    Bar()
    .add_xaxis(x[:10])
    .add_yaxis("成交額", y[:10])
    .set_global_opts(
        xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)),
        title_opts=opts.TitleOpts(title="Bar-旋轉(zhuǎn)X軸標簽", subtitle="解決標簽名字過長的問題"),
    )
    .render("成交量圖表.html")
)

?

好了,今天的分享就到這結(jié)束了,下次見。文章來源地址http://www.zghlxwxcb.cn/news/detail-748507.html

到了這里,關(guān)于簡單的用Python采集股票數(shù)據(jù),保存表格后分析歷史數(shù)據(jù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包