雅虎财经取数-excel vba VS python

年前,有这么个问题,需要把yahoo finance 网站上600000这支的股票每天收盘价格记录并下载下来。

刚开始是想的用excel内置数据获取加excel vba实现。
我花了一个小时的时间录宏,
大致就是在打开excel之后,
定时去从网站获取数据粘贴到另外的sheet页里边,
基本实现了功能。
代码如下:
<pre name="code" class="vb">Sub Macro2()
'
' Macro2 Macro
'
'
Dim 主菜单栏 As CommandBar
         On Error Resume Next
         Application.CommandBars("我的主菜单").Delete
      Set 主菜单栏 = Application.CommandBars.Add
        With 主菜单栏
              .Visible = True
              .Name = "我的主菜单"
              .Position = msoBarTop
        End With
        '菜单恢复
        '
        DoEvents

    Sheets("网站下载").Select
    Range("A2:G2").Select
    Selection.Copy
    Sheets("数据表").Select
    Range("A4180").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("A4179").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("A4180").Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
    ActiveWindow.ScrollRow = 4142
    ActiveWindow.ScrollRow = 8
    ActiveWindow.ScrollRow = 1
    Rows("2:2").Select
    Selection.Delete Shift:=xlUp
    ActiveWindow.ScrollRow = 8
    ActiveWindow.ScrollRow = 4126
    ActiveWindow.ScrollRow = 4147
    Range("H4179").Select
     Application.OnTime Now + TimeValue("09:30:00"), "Macro1"
    '定时每10秒执行一次,直到11点13分
    '

End Sub
*********************************************************** 
Sub doevent()
Dim 主菜单栏 As CommandBar
         On Error Resume Next
         Application.CommandBars("我的主菜单").Delete
      Set 主菜单栏 = Application.CommandBars.Add
        With 主菜单栏
              .Visible = True
              .Name = "我的主菜单"
              .Position = msoBarTop
        End With
        '菜单恢复
        '

         DoEvents
 
If Sheets("网站下载").Range("A2").Value = Sheets("数据表").Range("A4179").Value Then Exit Sub Else Application.OnTime Now, "Macro2"
 '比较数据,如果相同则退出
        '
   End Sub


 
************************************************************************** 
后来觉得这个方法不太好玩。
就换了python2.7。 
简单说就是利用  urllib库去取数然后再保存,
还挺快。画图就比较丑了,跟matlab一样。 
###################取数######################
import urllib
url = 'http://chart.finance.yahoo.com/table.csv?'
url +='s=600000.SS'
url += '&a=7&b=4&c=2000' #开始时间
url +='&d=2&e=16&f=2016'#结束时间
url +='&g=d&ignore=.csv'
#params=urllib.urlencode({})
connect =urllib.urlopen(url)
data = connect.read()
#print data
urllib.urlretrieve(url,'./msft.csv')


###################取数######################

####################绘图##################
import numpy as np
import pandas as pd

url = 'http://chart.finance.yahoo.com/table.csv?'
url +='s=600000.SS'
url += '&a=7&b=4&c=2000' #开始时间
url +='&d=2&e=16&f=2016'#结束时间
url +='&g=d&ignore=.csv'

data = pd.read_csv(url, parse_dates=['Date'])
data.plot(x='Date',y='Close')


####################绘图##################
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值