ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 32692|回复: 59

[求助] 请老师写个采集股票数据的代码

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-3-29 11:35 | 显示全部楼层 |阅读模式
想把下面两个网址的数据输出到EXCEL,麻烦老师抽空给看看!!最好是只提取某几列的数据,例如:DDX、DDY,并且以:“代码   数据”的形式输出到文本文件,多谢了!!
http://www.ddx.name/dde.asp
http://www.chaoniu8.cn/ddesort.aspx?sqlid=ddesort&paras=0

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-3-29 20:51 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-3-29 22:09 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-3-29 23:33 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

超牛网的做好了,代码如下,EXCEL如附件

  1. Sub Test()
  2.     Dim i As Long
  3.     Dim tmp() As String, arr() As String
  4.    
  5.     [a1:q1] = Split("代码,简称,最新价,涨幅,换手率,BBD,DDX,I0天内红,DDY,DDZ,通吃率,主动率,量比,特大单差,大单差,小单差,流通盘", ",")
  6.     With CreateObject("Microsoft.XMLHTTP")
  7.         .Open "get", "http://www.chaoniu8.cn/ddesort.aspx?sqlid=ddesort&paras=0", False
  8.         .setRequestHeader "Content-Type", "text/html"
  9.         .send
  10.         tmp() = Split(Split(Split(Replace(Replace(.responsetext, "'", ""), "],[", ""), "cnmyarray = new Array([")(1), "]);</script>")(0), ",")
  11.     End With
  12.     ReDim arr(UBound(tmp) \ 16, 15)
  13.     For i = 0 To UBound(tmp)
  14.        arr(i \ 16, i Mod 16) = tmp(i)
  15.     Next
  16.     [a2].Resize(UBound(arr) + 1, 16) = arr
  17.     [a:q].Columns.AutoFit
  18.     MsgBox "Ok"
  19. End Sub
复制代码

[ 本帖最后由 xmyjk 于 2011-3-29 23:55 编辑 ]

超牛网.rar

132.09 KB, 下载次数: 695

TA的精华主题

TA的得分主题

发表于 2011-3-29 23:50 | 显示全部楼层

DDX的也做好了,没有股票名称明天再调试

  1. Sub Test()
  2.     Dim i As Long, rw As Long
  3.     Dim tmp() As String, arr() As String
  4.     Dim p As Long
  5.         
  6.     [a1:t1] = Split("股票代码,股票名称,最新价,涨跌幅,换手率,量比,DDX,DDY,DDZ,DDX60,DDY60,5日内,10日内,连续,连增,涨速5,特大买,特大卖,小单买,小单卖", ",")
  7.     For p = 1 To 41
  8.     rw = [a65536].End(xlUp).Row + 1
  9.    
  10.     With CreateObject("Microsoft.XMLHTTP")
  11.         .Open "get", "http://www.ddx.name/script/DDEscript.asp?mk=&sortID=7&sortBY=-1&page=" & p & "&randNum=0.7210666082133784", False
  12.         .setRequestHeader "Content-Type", "text/html"
  13.         .send
  14.         tmp() = Split(Split(Split(Replace(Replace(.responsetext, """", ""), "],[", ","), "var pageArray = new Array([")(1), "]);")(0), ",")
  15.     End With
  16.     ReDim arr(UBound(tmp) \ 20, 19)
  17.     For i = 0 To UBound(tmp)
  18.        arr(i \ 20, i Mod 20) = tmp(i)
  19.     Next
  20.     Cells(rw, 1).Resize(UBound(arr) + 1, 20) = arr
  21.     Next
  22.     [a:t].Columns.AutoFit
  23.     MsgBox "Ok"
  24. End Sub
复制代码

[ 本帖最后由 xmyjk 于 2011-3-29 23:52 编辑 ]

ddx.rar

20.5 KB, 下载次数: 298

TA的精华主题

TA的得分主题

发表于 2011-3-29 23:56 | 显示全部楼层
超牛网的附件重新更新了

这个网站有刷新控制的,一个IP在一定时间有刷新频率控制,如果失败,过会儿在刷看看

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-3-30 00:57 | 显示全部楼层

回复 6楼 xmyjk 的帖子

多谢上旋下弦月老师!太感谢了!!
我从本论坛下载了个很早前的附件,照猫画虎改成了超牛网的。只是每页第一行不显示,研究了半天也不知问题出在哪里。采集速度比您的慢许多,只是想学习一下,麻烦老师给看看。另外,能否增加数据更新时间和文本输出功能。输出文本主要是方便导入到股票自定义数据,格式如下。超牛网的代码最好能增加SH、SZ。多谢了!!
超牛网downloadDDE-2.rar (188.17 KB, 下载次数: 245)
文本格式.rar (15.29 KB, 下载次数: 153)

TA的精华主题

TA的得分主题

发表于 2011-3-30 01:27 | 显示全部楼层

DDX把股票名称的修正好了,代码如下,excel如附件

  1. Sub Test()
  2.     Dim i As Long, rw As Long
  3.     Dim tmp() As String, arr() As String
  4.     Dim p As Long
  5.         
  6.     [a1:t1] = Split("股票代码,股票名称,最新价,涨跌幅,换手率,量比,DDX,DDY,DDZ,DDX60,DDY60,5日内,10日内,连续,连增,涨速5,特大买,特大卖,小单买,小单卖", ",")
  7.     On Error Resume Next
  8.     For p = 1 To 41
  9.     rw = [a65536].End(xlUp).Row + 1
  10.    
  11.     With CreateObject("Microsoft.XMLHTTP")
  12.         .Open "get", "http://www.ddx.name/script/DDEscript.asp?mk=&sortID=7&sortBY=-1&page=" & p & "&randNum=0.7210666082133784", False
  13.         .setRequestHeader "Content-Type", "text/html"
  14.         .send
  15.         tmp() = Split(Split(Split(Replace(Replace(.responsetext, """", ""), "],[", ","), "var pageArray = new Array([")(1), "]);")(0), ",")
  16.     End With
  17.     ReDim arr(UBound(tmp) \ 20, 19)
  18.     For i = 0 To UBound(tmp)
  19.        arr(i \ 20, i Mod 20) = tmp(i)
  20.     Next
  21.     Cells(rw, 1).Resize(UBound(arr) + 1, 20) = arr
  22.     Next
  23.     [a:t].Columns.AutoFit
  24.    
  25.     Dim nm As Long
  26.     Dim j As Long, k As Long
  27.     Dim gp() As String, tmp1() As String
  28.     Dim m As Long
  29.                
  30.     With CreateObject("Microsoft.XMLHTTP")
  31.         .Open "get", "http://www.ddx.name/js/stockCode.js", False
  32.         .setRequestHeader "Content-Type", "text/html"
  33.         .send
  34.         tmp1() = Split(Split(Split(Replace(Replace(StrConv(.responsebody, vbUnicode, &H804), """", ""), "],[", ","), "var stockCodeArray=new Array([")(1), "]);")(0), ",")
  35.     End With
  36.     ReDim gp(UBound(tmp1) \ 2, 1)
  37.     For m = 0 To UBound(tmp1)
  38.        gp(m \ 2, m Mod 2) = tmp1(m)
  39.     Next
  40.         
  41.     nm = [a65536].End(xlUp).Row - 1
  42.     For j = 1 To nm
  43.     For k = 1 To UBound(gp) + 1
  44.     If Trim(Cells(j + 1, 1).Value) = gp(k - 1, 0) Then Cells(j + 1, 2).Value = gp(k - 1, 1): Exit For
  45.     Next
  46.     Next
  47.    
  48.     MsgBox "Ok"
  49. End Sub
复制代码

ddx.rar

24.96 KB, 下载次数: 507

修正后

TA的精华主题

TA的得分主题

发表于 2011-3-30 01:30 | 显示全部楼层
原帖由 lixjun 于 2011-3-30 00:57 发表
多谢上旋下弦月老师!太感谢了!!
我从本论坛下载了个很早前的附件,照猫画虎改成了超牛网的。只是每页第一行不显示,研究了半天也不知问题出在哪里。采集速度比您的慢许多,只是想学习一下,麻烦老师给 ...


行啊,明天帮你看,困了,先休息。

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-3-30 09:23 | 显示全部楼层
多谢老师深夜还来帮忙,辛苦了!DDX在线的两个脚本都试了试,第一个有很多重复股票,还有不少股票没能显示。第二个脚本好像执行一会就没反应了。DDX在线估计做了限制,在网页里只能点击前7个页面。不好做的话,可以试试下面的网站,不限制页面,速度还行。谢谢老师了!!

http://www.shdjt.com/                (散户大家庭)
http://www.shdjt.com/sort.asp  (这个是排序的页面)
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-12 09:52 , Processed in 0.050778 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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