吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 54700|回复: 432
收起左侧

[其他转载] Excel也爬虫,股票监控助手 1.1

    [复制链接]
文西思密达 发表于 2019-4-16 09:38
最近上班无聊,但是又不敢大张旗鼓打开浏览器去看股票,
于是在Excel里弄了个股票监控小助手,老板还以为我在认真分析数据

  • 希望有大佬可以继续深入优化一下,添加多一些功能,目前只是简单的涨跌



另外,请教各路大神,关于在同一个Class下面,有多项<tr>信息,我应该如何分开抓取信息?
请教.jpg

使用方法:
在A列输入你的股票代码,然后点击按钮更新即可
GIF.gif


系统:Win10 64
OFFICE 365测试使用正常

OFFICE Version.jpg

希望大家鼓励支持一下!!
觉得有用,请给个免费评分 ,谢谢!


Stock 1.1.rar (22.75 KB, 下载次数: 2997)

源码分享:

[Visual Basic] 纯文本查看 复制代码
 
Sub GET_STOCK()
'-------------Clean old data--------------------------------
Dim bb%, aa%
aa = [d1048576].End(xlUp).row
bb = [b1048576].End(xlUp).row
Range("b3:r3" & bb).ClearContents
'--------------data update time-------------------------------
Range("B1") = Format(Now, "mm-dd / hh:mm:ss") 'update time

'---------------judge stock of SH or SZ------------------------------
  For r = 3 To Range("A1").CurrentRegion.Rows.Count
  dm = Cells(r, 1).Value
        If left(dm, 1) = 6 Or dm = "000001" Then
               url = "http://qt.gtimg.cn/q=sh" & dm 'Shanghai stock
        Else
               url = "http://qt.gtimg.cn/q=sz" & dm 'Shenzhen stock
        End If
          With CreateObject("msxml2.xmlhttp")
        .Open "GET", url, False
        .send
        sp = Split(.responseText, "~")
        If UBound(sp) > 3 Then
'---------------get data part------------------------------
Cells(r, 2).Value = sp(1)   'Name
Cells(r, 3).Value = sp(3)   'Current Price

Cells(r, 5).Value = sp(32)   'Up down %
Cells(r, 6).Value = sp(4)   'Yesterday Price
Cells(r, 7).Value = sp(5)   'Opening price
Cells(r, 8).Value = sp(33)   'Highest
Cells(r, 9).Value = sp(34)   'Minimum
Cells(r, 10).Value = sp(47)   'Harden price
Cells(r, 11).Value = sp(48)   'Drop stop price
Cells(r, 12).Value = sp(38)   'Turnover rate
Cells(r, 13).Value = sp(43)   'Amplitude
Cells(r, 14).Value = sp(6)   'Trading volume
Cells(r, 15).Value = sp(39)   'P/e ratio
Cells(r, 16).Value = sp(44)   'Current market
Cells(r, 17).Value = sp(45)   'Total market value
Cells(r, 18).Value = sp(46)   'price-to-book
'---------------Up or Down color------------------------------
Dim zhangDie As Double
            zhangDie = sp(31)  'up down price
            Cells(r, 4).Value = zhangDie  'up down price
            If zhangDie > 0 Then
             
                Cells(r, 4).Font.Color = vbRed
                Cells(r, 5).Font.Color = vbRed
            Else
                
                Cells(r, 4).Font.Color = &H228B22
                Cells(r, 5).Font.Color = &H228B22
            End If
        Else
        End If
    End With
    Next
 End Sub

免费评分

参与人数 66吾爱币 +56 热心值 +55 收起 理由
未来丨 + 1 + 1 谢谢@Thanks!
Super-Pojie + 1 &amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;&amp;lt;font style=
6502987 + 1 我很赞同!
shinykers + 1 + 1 谢谢@Thanks!
超级小星星 + 1 + 1 真是太赞了谢谢
尘墨小生 + 1 + 1 哈哈试试看
q1048009461 + 1 我很赞同!
观友客 + 1 + 1 我很赞同!
yjn866y + 1 + 1 我很赞同!
conan86 + 1 谢谢@Thanks!
yaphoo + 1 我很赞同!
devinhu + 1 + 1 谢谢@Thanks!
Tea毒生灵 + 1 + 1 我很赞同!
zaf345 + 1 能爬EXE程序的数值吗?
moban2013 + 1 + 1 热心回复!
觉觉得 + 1 我很赞同!
beifangnongfu + 1 谢谢@Thanks!
sunmlyh + 1 + 1 鼓励转贴优秀软件安全工具和文档!
x66 + 1 好搞笑哦哈哈哈哈
一颗草zZ + 1 + 1 谢谢@Thanks!
-肥而不腻- + 1 + 1 谢谢@Thanks!
Fencer + 1 热心回复!
远洋君 + 1 我很赞同!
红烧排骨 + 1 用心讨论,共获提升!
yuren008 + 1 + 1 我很赞同!
ee789852 + 1 + 1 感谢分享...
马小天 + 2 + 1 这也太六了,希望增加点新功能
lijp900214 + 1 + 1 热心回复!
Tsing_52 + 1 我很赞同!
williamzwm + 1 用心讨论,共获提升!能不能针对股价或V量能设置个预警提示?
hafeng45 + 1 + 1 热心回复!
sunnylds7 + 1 + 1 热心回复!
elixc + 1 + 1 我很赞同!
天青等雨 + 1 + 1 谢谢@Thanks!
ooooook + 1 尴尬,不知道怎么用
fengzdchen + 1 谢谢@Thanks!
knsew + 1 谢谢@Thanks!
nsqwe + 1 热心回复!
a22393778 + 1 + 1 我很赞同!
zzzain46 + 3 + 1 用心讨论,共获提升!
和风一号 + 1 + 1 用心讨论,共获提升!
thornjay + 1 + 1 谢谢@Thanks!
lapoo + 1 + 1 谢谢@Thanks!
来袭i + 1 + 1 我很赞同!
AAA00544 + 1 + 1 我很赞同!
小小木头 + 1 我很赞同!
赤狐 + 1 + 1 谢谢@Thanks!
氓之嗤嗤 + 1 6
狗大户 + 1 + 1 谢谢@Thanks!
Liyqa121000 + 1 + 1 谢谢@Thanks!
light881 + 1 + 1 谢谢@Thanks!
pwzx + 1 + 1 太有才了
zouxm2008 + 1 + 1 热心回复!
weiaizz + 1 + 1 谢谢@Thanks!
waterfish88 + 1 + 1 谢谢@Thanks!
ymeng6 + 1 热心回复!
Pony21 + 1 我很赞同!
飘在河西 + 1 + 1 牛掰666 感谢分享
99wanggui + 1 + 1 谢谢@Thanks!
angsanghu + 1 + 1 谢谢@Thanks!
哈喽先生 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
tunis + 1 + 1 我很赞同!
kkc + 1 + 1 用心讨论,共获提升!
秦始皇帝 + 1 + 1 用心讨论,共获提升!
muji + 1 热心回复!
dedegoodboy + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

2014晴天 发表于 2019-9-24 15:48
嗯~ o(* ̄▽ ̄*)o,希望楼主不要介意,用数组写了下,应该比直接操作单元格快一点儿吧...

[Visual Basic] 纯文本查看 复制代码
Option Explicit
Sub emmmm()
    
    Dim nR%, r%, dm$, url$, t
    Dim arr, ssr
    t = Timer
    Application.ScreenUpdating = False
  '==================================================================
    
    With Sheet3
        arr = .Range("a1").CurrentRegion
        arr(1, 2) = Format(Now, "mm-dd") '更新时间
        arr(1, 3) = Format(Now, "hh:mm")
        For r = 3 To UBound(arr)
            dm = arr(r, 1)
            
            If left(dm, 1) = 6 Or dm = "000001" Then
                url = "http://qt.gtimg.cn/q=sh" & dm '上交所
            Else
                url = "http://qt.gtimg.cn/q=sz" & dm '深交所
            End If
            
            With CreateObject("msxml2.xmlhttp")
                .Open "GET", url, False
                .send
                ssr = Split(.responseText, "~")
                
                If UBound(ssr) > 3 Then
                    arr(r, 2) = ssr(1): arr(r, 3) = ssr(3): arr(r, 5) = ssr(32): arr(r, 6) = ssr(4)
                    arr(r, 7) = ssr(5): arr(r, 8) = ssr(33): arr(r, 9) = ssr(34): arr(r, 10) = ssr(47)
                    arr(r, 11) = ssr(48): arr(r, 12) = ssr(38): arr(r, 13) = ssr(43): arr(r, 14) = ssr(6)
                    arr(r, 15) = ssr(39): arr(r, 16) = ssr(44): arr(r, 17) = ssr(45): arr(r, 18) = ssr(46)
                    arr(r, 4) = ssr(31)
                    
                    If arr(r, 4) > 0 Then
                        With Range("d" & r & ":e" & r).Font
                            .Color = vbRed
                            .Bold = True
                        End With
                    Else
                       With Range("d" & r & ":e" & r).Font
                            .Color = vbGreen
                            .Bold = True
                        End With
                    End If
                End If
            End With
        Next
        .Range("a1").Resize(UBound(arr), UBound(arr, 2)) = arr
    End With
    Application.ScreenUpdating = True
    MsgBox "又赚了一个亿呀,仅耗时:" & Format(Timer - t, "0.00秒"), 64, "WatchMen温馨提示:"
End Sub

Stock 0.1.zip

40.89 KB, 下载次数: 944, 下载积分: 吾爱币 -1 CB

 楼主| 文西思密达 发表于 2020-3-12 10:53
omy2000 发表于 2020-3-12 08:47
office2010报错,找不到数据

报错估计是你的office问题,截图看看
 楼主| 文西思密达 发表于 2019-4-16 09:43
dedegoodboy 发表于 2019-4-16 09:49
沙发,感谢分享
xk8899 发表于 2019-4-16 09:59
感谢分享
tianlanghd 发表于 2019-4-16 10:00
牛逼啊!!!
GhostCN_Z 发表于 2019-4-16 10:03
python re模块
f23258 发表于 2019-4-16 10:04
这个有点厉害啦,手机看看就可以了
liurunpeng 发表于 2019-4-16 10:05
感谢楼主分享
坐久落花多 发表于 2019-4-16 10:07
这个有意思哈
花心乞丐 发表于 2019-4-16 10:07
厉害厉害 可惜不懂股票
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-22 11:30

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表