91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用python怎么爬取最新的股票數據

發布時間:2021-03-01 17:24:05 來源:億速云 閱讀:469 作者:Leah 欄目:開發技術

今天就跟大家聊聊有關使用python怎么爬取最新的股票數據,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

1. python爬取網易財經不同板塊股票數據

目標網址:

http://quotes.money.163.com/old/#query=hy010000&DataType=HS_RANK&sort=PERCENT&order=desc&count=24&page=0

使用python怎么爬取最新的股票數據

由于這個爬蟲部分比較簡單,這里不做過多贅述,僅介紹一下思路并附上完整代碼供大家參考。

爬蟲思路:

  1. 請求目標網站數據,解析出主要行業(新)的數據:行業板塊名稱及對應id(如金融,hy010000)

  2. 根據行業板塊對應id構造新的行業股票數據網頁

  3. 由于翻頁網址不變,按照《》的里的套路找到股票列表數據的真實地址

  4. 代入參數,獲取全部頁數,然后翻頁爬取全部數據

爬蟲代碼:

# -*- coding: utf-8 -*-
"""
Created Feb 28 10:30:56 2021

@author: 可以叫我才哥
"""

import requests
import re
import pandas as pd

# 獲取全部板塊及板塊id
url = 'http://quotes.money.163.com/old/#query=hy001000&DataType=HS_RANK&sort=PERCENT&order=desc&count=24&page=0'

r = requests.get(url)

html = r.text
# 替換非字符為空,便于下面的正則
html = re.sub('\s','',html)
# 正則獲取 板塊及id所在區域
labelHtml = re.findall(r'</span>主要行業\(新\)</a>(.*?)</span>證監會行業\(新\)',html)[0]
# 正則板塊和id,結果為由元組組成的列表
label = re.findall(r'"qid="(hy.*?)"qquery=.*?"title="(.*?)">',labelHtml)
# 轉化為dataframe類型
dfLabel = pd.DataFrame(label,columns=['id','板塊'])

# 根據板塊id和翻頁獲取頁面數據(json格式)
def get_json(hy_id, page):
 query = 'PLATE_IDS:' + str(hy_id)
 params={
  'host': 'http://quotes.money.163.com/hs/service/diyrank.php',
  'page': page,
  'query': query,
  'fields': 'NO,SYMBOL,NAME,PRICE,PERCENT,UPDOWN,FIVE_MINUTE,OPEN,YESTCLOSE,HIGH,LOW,VOLUME,TURNOVER,HS,LB,WB,ZF,PE,MCAP,TCAP,MFSUM,MFRATIO.MFRATIO2,MFRATIO.MFRATIO10,SNAME,CODE,ANNOUNMT,UVSNEWS', #你可以不用這么多字段
  'sort': 'PERCENT',
  'order': 'desc',
  'count': '24',
  'type': 'query',
  }
 url = 'http://quotes.money.163.com/hs/service/diyrank.php?'
 r = requests.get(url,params=params)
 j = r.json()
 
 return j

# 空列表用于存取每頁數據
dfs = []
# 遍歷全部板塊
for hy_id,板塊 in dfLabel.values:
 # 獲取頁數
 j = get_json(hy_id, 0)
 pages = j['pagecount']
 
 for page in range(pages):
  j = get_json(hy_id, page)
  data = j['list']
  df = pd.DataFrame(data)
  df['板塊'] = 板塊
  dfs.append(df)
 print(f'已爬取{len(dfs)}個板塊數據')

result = pd.concat(dfs)

2. excel樹狀圖

excel樹狀圖是在office2016級之后版本中新加的圖表類型,想要繪制需要基于此版本及之后的版本哦。

2.1. 簡單的樹狀圖

簡單的樹狀圖繪制流程:框選數據—>插入—>圖表—>選中樹狀圖 即可。

使用python怎么爬取最新的股票數據

以下圖為例,在樹狀圖中,每個色塊代表一個省份,色塊面積大小則由其GDO值大小決定。

使用python怎么爬取最新的股票數據

2.2. 帶有增長率的樹狀圖

我們發現,在基礎的樹狀圖中,色塊顏色除了區別色塊之外并沒有其他特殊含義。拿GDP來說,除了值之外我們一般也會去看其增長率,那么是否可以讓色塊顏色和增長率有關聯呢?

下面我們試著探究一下,如果成功的話,那么金融界的大盤云圖似乎也可以用excel樹狀圖來進行繪制了不是!

思路:

  1. 我們希望色塊顏色能代表增長率,比如紅色是上漲,綠色是下降且顏色越深代表絕對值越大

  2. 再對每個色塊進行對應的顏色填充即可

由于 樹狀圖頂多支持多級,色塊顏色也只能手動單一填充,怎么辦呢?既然手動可以,那么其實就可以用VBA自動化這個過程咯。

2.3.1. 增長率配色

基于思路1,我們需要對增長率進行配色,最簡單的就是用條件格式里的色階。

框選增長率數據—>開始—>條件格式—>色階(選中那個讓值越大顏色越紅的,由于這里有負增長率,所以選了帶紅綠的):

使用python怎么爬取最新的股票數據

為了更好的展示區分正負增長率,我們在設置完色階后再進行管理規則:

  • 我們將中間值設為數字0,這樣負增長率就是綠色,正增長率就是紅色;

  • 我們將最大值設置為百分點值80,也就是增長率前80%的值都是最紅的。

使用python怎么爬取最新的股票數據

最終配色效果:

使用python怎么爬取最新的股票數據

2.3.2. VBA填充色塊顏色

先看效果:

湖北因為收到疫情影響最大,有接近小半年屬于封省狀態,全年增長率為負數。

使用python怎么爬取最新的股票數據

由于條件格式下單元格顏色是不固定的無法通過vba獲取,我們需要將顏色賦值到新的一列中去,需要用到如下操作:

**選中增長率數據復制,然后點擊剪切板最右下角會出現剪貼板,再鼠標左鍵選擇需要粘貼的地方如E2,點擊剪貼板中需要粘貼的數據即可。**這個時候,被粘貼的單元格區域的顏色就是固定的了,你可以選擇刪除數據只留顏色部分。

使用python怎么爬取最新的股票數據

VBA思路:

激活需要操作的圖表(Activate)

遍歷全部的系列和數據點(ActiveChart.FullSeriesCollection(1).Points.Count)

從第一個數據點開始,獲取對應增長率單元格顏色(ActiveSheet.Range("E" & i + 1).Interior.Color)

將單元格賦值給該數據點(Selection.Format.Fill.ForeColor.RGB)

VBA代碼:

Sub My_Color()
   
 ActiveSheet.ChartObjects("圖表 1").Activate
 '遍歷全部的數據點
 For i = 1 To ActiveChart.FullSeriesCollection(1).Points.Count
  '選中數據點
  ActiveChart.FullSeriesCollection(1).Points(i).Select
  '獲取單元格顏色
  MyColor = ActiveSheet.Range("E" & i + 1).Interior.Color
  '將單元格顏色賦值給對應數據點填充色
  Selection.Format.Fill.ForeColor.RGB = MyColor
 Next

End Sub

看完上述內容,你們對使用python怎么爬取最新的股票數據有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

溆浦县| 农安县| 高邮市| 肇庆市| 昭平县| 姜堰市| 石林| 绥宁县| 开原市| 延安市| 武城县| 顺平县| 溆浦县| 通渭县| 方城县| 凤凰县| 大竹县| 浮山县| 霍州市| 循化| 井研县| 克拉玛依市| 南丹县| 河源市| 冕宁县| 昌宁县| 盐亭县| 兴文县| 乐平市| 苗栗市| 尼勒克县| 乐至县| 闵行区| 绥滨县| 酉阳| 南木林县| 夏邑县| 日喀则市| 虎林市| 珠海市| 潞西市|