以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  有点甜  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=154110)

--  作者:lihe60
--  发布时间:2020/9/3 21:41:00
--  有点甜
Dim startDate As Date = "2019-1-1"
\'手工修改日期
static count As Integer = 1
Dim cando As Boolean
count +=1
If Date.Now.Hour >= 10 AndAlso Date.Now.Hour <= 22 Then
    If count = 2 Then
        count = 1
        cando = True
    End If
ElseIf  Date.Now.Hour > 22 OrElse Date.Now.Hour <= 2 Then
    cando = True
End If
If cando=True Then
    Dim endDate As Date = "2019-1-1"
    \'手工修改日期
    Dim dt As DataTable = DataTables("数据下载日期表")
    \'dt.deletefor("")
    Dim d As Date = startDate
    Do While d <= endDate
        If d > Date.today Then
            msgbox("不能查找大于今天的数据" & d)
        Else
            Dim fdr As DataRow = dt.Find("日期 = #" & d & "#")
            If fdr Is Nothing Then
                fdr = dt.AddNew
                fdr("日期") = d
            End If
        End If
        d = d.AddDays(1)
    Loop
    Dim dt2 As DataTable = DataTables("老时时彩")
    Dim web As new System.Windows.Forms.WebBrowser
   
   
    For Each rw As DataRow In dt.Select("下载 = false")
        If rw("下载")=False
            DataTables("老时时彩").deletefor("日期=#"& rw("日期") &"#")
        End If
        web.ScriptErrorsSuppressed = True
        Dim str As String="https://caipiao.ip138.com/shishicai/tianjing/" \'.html" \' & str & "&key=" & Rand.Next(10000)
        web.navigate(str) \'手工修改tj
        Do Until web.ReadyState = 4
            Application.DoEvents
        Loop
        Dim tbs = web.Document.GetElementsByTagName("table")
        For i As Integer = 0 To 2 \'网页有3栏数据
            Dim tb = tbs(i)
            Dim trs = tb.GetElementsByTagName("tr")
            For Each tr As object In trs
                Dim tds = tr.GetElementsByTagName("td")
                If tds(0).Innertext<>Nothing And tds(1).Innertext<>"时间"
                    Dim r As Row=Tables("老时时彩").addnew
                    r("日期")=rw("日期")
                    r("期号")=tds(0).Innertext
                    r("时间")=tds(1).Innertext
                    r("开奖号")=tds(2).Innertext.replace(" ","") \'删除空格
                End If
            Next
        Next
        If rw("日期") < Date.today Then
            rw("下载") = True
        End If
    Next
End If

如果获取网页内容

--  作者:有点蓝
--  发布时间:2020/9/3 21:57:00
--  
这里不提供对各种网站的分析和数据抓取的技术支持,如果有需要的请自行学习解决。


https://docs.microsoft.com/zh-cn/dotnet/api/system.windows.forms.htmlelement?view=netframework-4.8
--  作者:lihe60
--  发布时间:2020/9/5 9:23:00
--  
有哪位高手知道调试代码吗?
--  作者:有点蓝
--  发布时间:2020/9/5 9:41:00
--  
做网页数据抓取,最主要的是要懂HTML,学会分析网页的DOM结构(标签直接的关系),完整DOM结构这个可以在浏览器按F12打开开发者工具查看。或者使用下面代码显示:

Dim str As String="https://caipiao.ip138.com/shishicai/tianjing/" \'.html" \' & str & "&key=" & Rand.Next(10000)
        web.navigate(str) \'手工修改tj
        Do Until web.ReadyState = 4
            Application.DoEvents
        Loop
output.show(web.Document.body.innerHtml)

--  作者:lihe60
--  发布时间:2020/9/5 10:16:00
--  
有点甜,再帮助一下,对于这个表,如何分析“显示号码”所在表的DOM结构。谢谢。
--  作者:有点蓝
--  发布时间:2020/9/5 10:27:00
--  
自食其力