Foxtable(狐表)用户栏目专家坐堂 → 数据下载


  共有12987人关注过本帖树形打印复制链接

主题:数据下载

帅哥哟,离线,有人找我吗?
yei
  21楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:74 积分:679 威望:0 精华:0 注册:2018/4/11 7:22:00
  发帖心情 Post By:2018/4/15 19:53:00 [只看该作者]

甜老师,我执行这代码发现一个问题:执行函数下载后等网页有新数据时再点执行,可新数据下载不了,要是关了项目再进入项目执行函数就可以。是不是还有点问题?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  22楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/15 21:15:00 [只看该作者]

Dim startDate As Date = "2018-4-15"
Dim endDate As Date = "2018-4-15"
Dim dtb1 As New DataTableBuilder("数据下载日期表")
dtb1.AddDef("日期", Gettype(Date))
dtb1.AddDef("下载", Gettype( Boolean  ))
dtb1.Build()

Dim d As Date = startDate
Do While d <= endDate
    Dim nr = Tables("数据下载日期表").addnew
    nr("日期")= d
    d = d.AddDays(1)
Loop

Dim dtb2 As New DataTableBuilder("老时时彩")
dtb2.AddDef("日期", Gettype(Date))
dtb2.AddDef("期号", Gettype(String), 32)
dtb2.AddDef("开奖号", Gettype(String), 32)
dtb2.AddDef("十位", Gettype(String), 32)
dtb2.AddDef("个位", Gettype(String), 32)
dtb2.AddDef("后三", Gettype(String), 32)
dtb2.Build()
MainTable= Tables("老时时彩")

Dim rw As Row
Dim web As new System.Windows.Forms.WebBrowser
For Each rw In Tables("数据下载日期表").Rows
    If rw("下载")=False Then
        StartDate = rw("日期")
        Dim str As String = Format(startDate, "yyyy-MM-dd_yyyy-MM-dd")
        str = "http://chart.cp.360.cn/kaijiang/kaijiang?lotId=255401&spanType=2&span=" & str & "&key=" & Rand.Next(10000)
               
        web.Navigate(str)
        Do Until web.ReadyState = 4
            Application.DoEvents
        Loop
        Dim i As Integer = 0
        For Each dl As object In web.Document.GetElementById("his-tab").GetElementsByTagName("table")
            If dl.getattribute("classname") Like "tr-odd*" Then
                For Each tr As object In dl.GetElementsByTagName("tr")
                    Dim tds = tr.GetElementsByTagName("td")
                    If tds.count >= 5 AndAlso tds(0).Innertext > "" Then
                        Dim ndr As DataRow = DataTables("老时时彩").addnew
                        ndr("日期") = startDate
                        ndr("期号") = tds(0).innertext
                        ndr("开奖号") = tds(1).innertext
                    End If
                Next
            End If           
        Next               
    End If
Next


 回到顶部
帅哥哟,离线,有人找我吗?
yei
  23楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:74 积分:679 威望:0 精华:0 注册:2018/4/11 7:22:00
  发帖心情 Post By:2018/4/15 22:06:00 [只看该作者]

谢谢甜老师,这么晚了还在解答问题,辛苦了图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
yei
  24楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:74 积分:679 威望:0 精华:0 注册:2018/4/11 7:22:00
  发帖心情 Post By:2018/4/16 7:35:00 [只看该作者]

现在还有个小问题:当下载结束日期往前推一天(设置为17日),会出现17日未有数据的条数会复制今天有数据的条数数据。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  25楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/16 8:49:00 [只看该作者]

以下是引用yei在2018/4/16 7:35:00的发言:
现在还有个小问题:当下载结束日期往前推一天(设置为17日),会出现17日未有数据的条数会复制今天有数据的条数数据。

 

不能查超过今天的日期的数据的。你可以加入提示

 

Dim startDate As Date = "2018-4-15"
Dim endDate As Date = "2018-4-17"
Dim dtb1 As New DataTableBuilder("数据下载日期表")
dtb1.AddDef("日期", Gettype(Date))
dtb1.AddDef("下载", Gettype( Boolean  ))
dtb1.Build()

Dim d As Date = startDate
Do While d <= endDate
    If d > Date.today Then
        msgbox("不能查找大于今天的数据" & d)
  
  Else
        Dim nr = Tables("数据下载日期表").addnew
        nr("日期")= d
    End If
    d = d.AddDays(1)
Loop

Dim dtb2 As New DataTableBuilder("老时时彩")
dtb2.AddDef("日期", Gettype(Date))
dtb2.AddDef("期号", Gettype(String), 32)
dtb2.AddDef("开奖号", Gettype(String), 32)
dtb2.AddDef("十位", Gettype(String), 32)
dtb2.AddDef("个位", Gettype(String), 32)
dtb2.AddDef("后三", Gettype(String), 32)
dtb2.Build()
MainTable= Tables("老时时彩")

Dim rw As Row
Dim web As new System.Windows.Forms.WebBrowser
For Each rw In Tables("数据下载日期表").Rows
    If rw("下载")=False Then
        StartDate = rw("日期")
        Dim str As String = Format(startDate, "yyyy-MM-dd_yyyy-MM-dd")
        str = "http://chart.cp.360.cn/kaijiang/kaijiang?lotId=255401&spanType=2&span=" & str & "&key=" & Rand.Next(10000)
       
        web.Navigate(str)
        Do Until web.ReadyState = 4
            Application.DoEvents
        Loop
        Dim i As Integer = 0
        For Each dl As object In web.Document.GetElementById("his-tab").GetElementsByTagName("table")
            If dl.getattribute("classname") Like "tr-odd*" Then
                For Each tr As object In dl.GetElementsByTagName("tr")
                    Dim tds = tr.GetElementsByTagName("td")
                    If tds.count >= 5 AndAlso tds(0).Innertext > "" Then
                        Dim ndr As DataRow = DataTables("老时时彩").addnew
                        ndr("日期") = startDate
                        ndr("期号") = tds(0).innertext
                        ndr("开奖号") = tds(1).innertext
                    End If
                Next
            End If
        Next
    End If
Next


 回到顶部
帅哥哟,离线,有人找我吗?
yei
  26楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:74 积分:679 威望:0 精华:0 注册:2018/4/11 7:22:00
  发帖心情 Post By:2018/4/16 13:15:00 [只看该作者]

谢谢甜老师耐心的解答,辛苦了图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
yei
  27楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:74 积分:679 威望:0 精华:0 注册:2018/4/11 7:22:00
  发帖心情 Post By:2018/4/16 13:26:00 [只看该作者]

做一个定时器执行动态抓取,日期的增加,不能避免16日的数据和17日数据的连接,动态抓取如何实现?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  28楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/16 14:55:00 [只看该作者]

以下是引用yei在2018/4/16 13:26:00的发言:
做一个定时器执行动态抓取,日期的增加,不能避免16日的数据和17日数据的连接,动态抓取如何实现?

 

不理解你的意思,请用实例具体说明你的问题和你需要达到的效果。


 回到顶部
帅哥哟,离线,有人找我吗?
yei
  29楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:74 积分:679 威望:0 精华:0 注册:2018/4/11 7:22:00
  发帖心情 Post By:2018/4/17 8:00:00 [只看该作者]

效果很棒,谢谢甜老师

 回到顶部
帅哥哟,离线,有人找我吗?
yei
  30楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:74 积分:679 威望:0 精华:0 注册:2018/4/11 7:22:00
  发帖心情 Post By:2018/4/17 13:20:00 [只看该作者]

老师定时器执行动态抓取代码怎么写?我把25楼的代码复制到计划管理计划1代码里,时间间隔是100000。可没有反应

 回到顶部
总数 90 上一页 1 2 3 4 5 6 7 8 9 下一页