• 新浪微博:
  • 微信 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:03-18

按键精灵安卓版
立即下载

软件版本:3.3.8
软件大小:62.5M
更新时间:12-18

按键精灵iOS版
立即下载

软件版本:1.6.7
软件大小:29.2M
更新时间:1-26

最新企业版UiBot
立即下载

软件版本:3.3
软件大小:282M
更新时间:08-06

快捷导航

登录 后使用快捷导航
没有帐号? 注册

登录 注册
发新话题 回复该主题

股票信息自动采集脚本教程来了,源码快收走! [复制链接]

1#
教程最后附按键源码,欢迎新手学习-
在抖音上关注“按键精灵”(抖音号:anjian07),我们将不定期发布各类办公中、生活里会用到的脚本小技巧,本篇教程小视频,已发布于抖音,欢迎观看!

一、脚本流程
1. 创建Excel表格,用于记录汇总数据
2. 打开目标网站采集数据
3. 数据记录表格
4. 表格发送邮件

二、创建表格
本地先创建Excel表格,并且设定好表格的表头列

  1. // 新建表格并设定表格路径
  2. ExcelIndex = LazyOffice.ExcelOpen("股票采集.xlsx", 1)
  3. ExcelPath = "D:\脚本演示\股票采集" & Hour(Time()) & Minute(Time()) & ".xlsx"


  4. // 写入表头
  5. Call LazyOffice.ExcelWrite(1, 1, 1, "股票代码")
  6. Call LazyOffice.ExcelWrite(1, 1, 2, "股票简称")
  7. Call LazyOffice.ExcelWrite(1, 1, 3, "最新价")
  8. Call LazyOffice.ExcelWrite(1, 1, 4, "涨跌额")
  9. Call LazyOffice.ExcelWrite(1, 1, 5, "涨跌幅")
  10. Call LazyOffice.ExcelWrite(1, 1, 6, "昨收")
  11. Call LazyOffice.ExcelWrite(1, 1, 7, "今开")
  12. Call LazyOffice.ExcelWrite(1, 1, 8, "最高")
  13. Call LazyOffice.ExcelWrite(1, 1, 9, "最低")
  14. Call LazyOffice.ExcelWrite(1, 1, 10, "资金净流入")
  15. Call LazyOffice.ExcelWrite(1, 1, 11, "成交量")
  16. Call LazyOffice.ExcelWrite(1, 1, 12, "成交额")
  17. Call LazyOffice.ExcelWrite(1, 1, 13, "换手率")
复制代码

三、采集数据
目标网站:http://data.10jqka.com.cn/hgt/hgtb/#J-ajax-main (只是以只网站进行举例)

我们需要采集下图种的所有股票信息:

您所在的用户组无法下载或查看附件


这里为了提高采集的效率,使用了JS的方法来直接采集整页表格里的内容,有兴趣的可以自行百度JS的DOM操作的相关资料学习
  1. Function 采集表格信息()
  2. Dim Code
  3. Code = Code & "tb = document.querySelectorAll('.m-table.J-ajax-table')[2];"
  4. Code = Code & "result = '';"
  5. Code = Code & "for (let row = 1; row < tb.rows.length; row++) {"
  6. Code = Code & " for (let col = 1; col < tb.rows[row].cells.length; col++) {"
  7. Code = Code & " result = result + tb.rows[row].cells[col].outerText + '|';"
  8. Code = Code & " }"
  9. Code = Code & " result = result + ',';"
  10. Code = Code & "}"
  11. Code = Code & "return result;"
  12. TracePrint Code
  13. Dim Result : Result = 神梦_网页填表.网页_执行JS(1, Code)

  14. 采集表格信息 = Split(Result, ",")
  15. End Function
复制代码

函数返回的是一个数组,每个元素是页面中的单条股票信息,方便后续的调用。采集过程中还涉及到翻页的操作,每次采集完单页后点击【下一页】按钮,继续采集下一页内容。

通过实际分析可以发现当翻到最后一页的时候是没有【下一页】按钮的,因此可以借此来判断是否已经全部采集完毕

  1. Function 翻页()
  2. 翻页 = true
  3. // 下一页有两种不同的特征,需要都兼容
  4. If 神梦_网页填表.网页_元素是否存在("//*[@id=""table2""]/div/a[8]") Then
  5. Call 神梦_网页填表.网页_点击元素("//*[@id=""table2""]/div/a[8]")
  6. ElseIf 神梦_网页填表.网页_元素是否存在("//*[@id=""table2""]/div/a[6]") Then
  7. Call 神梦_网页填表.网页_点击元素("//*[@id=""table2""]/div/a[6]")
  8. Else
  9. 翻页 = false
  10. End If
  11. End Function
复制代码

四、数据记录
结合上个部分封装的功能,就可以用一个循环实现边采集边记录数据。
  1. Do
  2. Dim Items : Items = 采集表格信息()
  3. For i = 0 To UBound(Items) - 1
  4. Dim Item : Item = Items(i)
  5. Dim Cols : Cols = Split(Item, "|")
  6. For j = 0 To UBound(Cols) - 1
  7. Call LazyOffice.ExcelWrite(1, G_CurrRow, j + 1, Cols(j))
  8. Next
  9. G_CurrRow = G_CurrRow + 1
  10. Delay 10
  11. Next
  12. If 翻页() = false Then
  13. Exit Do
  14. End If
  15. Loop
复制代码

采集当前页内容,遍历每条数据,分割之后逐条记录到表格里即可。
  1. 发送邮件
  2. 发送邮件就直接使用按键自带的命令库来实现即可
  3. // 发送邮件
  4. Dim FromEmail, AuthCode, ToEmail
  5. FromEmail = "发件人邮箱地址"
  6. AuthCode = "发件人邮箱授权码" // 到邮箱设置中的安全设置里获取
  7. ToEmail = Form1.InputBox2.Text

  8. Dim Result : Result = Lib.网络.发送邮件(FromEmail, AuthCode, ToEmail, "股票信息采集", "股票信息采集完毕", ExcelPath)
  9. If Result Then
  10. MessageBox "采集完毕并已发送邮件"
  11. Else
  12. MessageBox "邮件发送失败,检查发件人地址和密码是否正确,确保邮箱中已开启POP协议功能"
  13. End If
复制代码
完整源码下载:
您所在的用户组无法下载或查看附件



关注按键精灵抖音号,我们将不定期发布各类办公中、生活里会用到的脚本小技巧哦~







本主题由 管理员 兄弟客服03 于 2020/12/16 15:44:52 执行 移动主题 操作
发新话题 回复该主题