iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 9
1
AI & Data

AI&Machine Learning系列 第 9

Data 大數據(彙整資料)探討 補充 Day 9

本文將會介紹一篇程式,他是透過爬蟲將股票資料抓下來,並且將股票資料會成圖形的程式。




def covertDate(Date):
    str1 = str(Date)
    yearstr = str1[:3]
    realyear = str(int(yearstr) + 1911)
    realdate = realyear + str1[4:6] + str1[7:9]
    return realdate

def twodigit(n):
    if(n<10):
        restr = '0' + str(n)
    else:
        restr = str(n)
    return restr

import requests
import json,csv
import pandas as pd
import os,time
import plotly
from plotly.graph_objs import Scatter,Layout

plotly.offline.init_notebook_mode(connected=True)

pd.options.mode.chained_assignment = None

filepath = 'Ticket.csv'
urlbase = 'http://www.twse.com.tw/exchangeReport/STOCK_DAY?response=json&date=2018'
urltail = '01&stockNo=2317&_=1559151834131'

if not os.path.isfile(filepath):
    for i in range(1,13):

        url_twse = urlbase + twodigit(i) + urltail
        res = requests.get(url_twse)
        jdata = json.loads(res.text)

        outputfile = open(filepath,'a',newline = '', encoding='utf-8-sig')
        outputwriter = csv.writer(outputfile)
        if i==1:

            outputwriter.writerow(jdata['fields'])
        for dataline in (jdata['data']):
            outputwriter.writerow(dataline)
        time.sleep(0.5)
    outputfile.close()

pdstock = pd.read_csv(filepath,encoding='utf-8-sig')
for i in range(len(pdstock['日期'])):
    pdstock['日期'][i] = covertDate(pdstock['日期'][i])
pdstock['日期'] = pd.to_datetime(pdstock['日期'])

data = [
        Scatter(x = pdstock['日期'],y=pdstock['收盤價'],name= '收盤價'),
        Scatter(x = pdstock['日期'],y=pdstock['最低價'],name= '最低價'),
        Scatter(x = pdstock['日期'],y=pdstock['最高價'],name= '最高價')
        ]
plotly.offline.iplot({
        "data" : data,
        "layout":Layout(title='2018年個股統計圖')
        })
pdstock.plot(kind = 'line',figsize = (12,6),x='日期',y=['收盤價','最低價','最高價'])

這篇以上將之前各位介紹的基本上有做個融合,活用到爬蟲功能以及資料處理還有將資料變成表格再變成圖表,當然這個程式碼可能對於許多高手真的感覺很LOW,還請見諒!!!!,也先謝謝大數據分析書籍所提供學習程式,以及Youtube 連結 大數據股票抓取 https://www.youtube.com/channel/UCFdTiwvDjyc62DBWrlYDtlQ/feed 請各位也可以去看看他所介紹的程式,可以學習到不少,基本上以上的程式可以動作,他動作完將會呈現三軸的曲線,而且這三軸曲線還可以顯示出三個相關屬性,收盤價,最低價,最高價,各位可以嘗試看看。

這次會補充的地方為後面,我將資料抓取下來變成Excel格式 csv 檔案再將檔案裏面的一一東西,利用 pandas 功能把她一一抓取下來,行與列定義完成,就可以將所有資料取下,取下之後再將pandas 的圖表功能拿來使用,即可做出一個完整的圖表程式。

那在此謝謝各位觀看,以上為不專業AI的介紹,謝謝大家,下一篇就會邁向儲存資料的部分,那我們下篇見~~~~

預告:下篇 儲存資料 探討

上一篇
Data 大數據(彙整資料)探討 Day8
下一篇
Data 大數據(儲存資料)探討
系列文
AI&Machine Learning30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言