Foxtable(狐表)用户栏目专家坐堂 → 读取网页数据


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

主题:读取网页数据

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


加好友 发短信
等级:童狐 帖子:234 积分:2062 威望:0 精华:0 注册:2015/11/7 21:11:00
  发帖心情 Post By:2019/3/28 15:02:00 [只看该作者]

以下是引用有点蓝在2019/3/12 21:36:00的发言:
什么错?
有点蓝老师,弹出 “未将对象引用设置到对象的实例”,实例我已经上传了,麻烦帮忙看看,谢谢了。


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


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

以下是引用dixiaxiaodan在2019/3/28 15:02:00的发言:
有点蓝老师,弹出 “未将对象引用设置到对象的实例”,实例我已经上传了,麻烦帮忙看看,谢谢了。

 

请上传正确的,对应的实例测试。


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


加好友 发短信
等级:童狐 帖子:234 积分:2062 威望:0 精华:0 注册:2015/11/7 21:11:00
  发帖心情 Post By:2019/3/28 23:13:00 [只看该作者]

以下是引用有点甜在2019/3/28 15:09:00的发言:

 

请上传正确的,对应的实例测试。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:网页数据读取--ad.table

各位老师,已上传


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


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

你给的实例我测试正常,请说明测试步骤。

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


加好友 发短信
等级:童狐 帖子:234 积分:2062 威望:0 精华:0 注册:2015/11/7 21:11:00
  发帖心情 Post By:2019/3/31 14:16:00 [只看该作者]

我就是点击获取数据,然后就弹出窗口,
图片点击可在新窗口打开查看此主题相关图片如下:问题弹窗.png
图片点击可在新窗口打开查看

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


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

你上传的例子,我测试,没问题

 

下载信息  [文件大小:344.0 KB  下载次数:1]
图片点击可在新窗口打开查看点击浏览该文件:网页数据读取--ad.table


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


加好友 发短信
等级:童狐 帖子:234 积分:2062 威望:0 精华:0 注册:2015/11/7 21:11:00
  发帖心情 Post By:2019/4/1 22:41:00 [只看该作者]

以下是引用有点甜在2019/4/1 11:08:00的发言:

你上传的例子,我测试,没问题

 不好意思啊,我上传的例子里注释掉了一段代码

        With Tables("AD")

            'If Tables("AD").Current(Cols(0)) Like "*A320" Then

            'Else

              '.Current.Delete()

            'End If

        End With

取消注释后,就会报错了

下载信息  [文件大小:344.0 KB  下载次数:1]
图片点击可在新窗口打开查看点击浏览该文件:网页数据读取--ad.table


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


加好友 发短信
等级:超级版主 帖子:105495 积分:536466 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/4/1 22:43:00 [只看该作者]

第一行加上

if Tables("AD").Current is nothing then return

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


加好友 发短信
等级:童狐 帖子:234 积分:2062 威望:0 精华:0 注册:2015/11/7 21:11:00
  发帖心情 Post By:2019/4/3 9:58:00 [只看该作者]

各位老师,我现在增加了新的功能,在导入时识别重复值,如果是重复的不再录入,但总是报错,调试了下,问题就出现在:Dim zl As String = tdelems(0).Innertext这句代码上,提示:“0”的值对于“index”无效。“index”应介于 0 和 -1 之间。下面附一下全部代码

参数名: index
Dim web As New System.Windows.Forms.WebBrowser()
Dim Cols() As String = { "指令编号","修正案号","标题","生效日期"}
Dim dr As DataRow
For pg As Integer = e.Form.Controls("textbox1").Value To e.Form.Controls("textbox2").Value
'Dim pg As Integer = 1
    Dim wz As String = "http://www.caacaad.org.cn/index.php?a=2&t=1&page= "& pg & "&"
    web.Navigate( wz )
    Do Until web.ReadyState = 4
        Application.DoEvents
    Loop

    Dim elems As object = web.Document.GetElementById("table1").GetElementsByTagName("tr")
    Dim m As Integer = 0
    Dim r As Integer = 0
    For Each elem As object In elems
        r = r + 1
        If r = elems.count Then
            Exit For
        End If
        Dim i As Integer = -1
        m = m + 1
        Dim tdelems As object =  elem.GetElementsByTagName("td")
        Dim zl As String = tdelems(0).Innertext
        If m > 1 Then  '因为网页的表格有标题,如果不判断,就会增加出一个空行
            If tdelems(0).Innertext Like "*A320*" Or tdelems(0).Innertext Like "*A330*" Or tdelems(0).Innertext Like "*MULT*" Or tdelems(0).Innertext Like "*B737*" Then
                dr = DataTables("AD监控").Find("指令编号 ='"& zl &"'")
                If dr Is Nothing Then
                    Tables("AD监控").AddNew
                    For Each tdelem As object In tdelems
                        i = i+1
                        If i < 3 Then
                            Tables("AD监控").Current(Cols(i)) = tdelems(i).Innertext
                        ElseIf i = 3 Then
                            Tables("AD监控").Current(Cols(i)) = tdelems(5).Innertext
                            Exit For
                        End If
                    Next
                End If
            End If
        End If
    Next
Next
Tables("AD监控").save

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


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

Dim web As New System.Windows.Forms.WebBrowser()
Dim Cols() As String = { "指令编号","修正案号","标题","生效日期"}
Dim dr As DataRow
For pg As Integer = e.Form.Controls("textbox1").Value To e.Form.Controls("textbox2").Value
    'Dim pg As Integer = 1
    Dim wz As String = "http://www.caacaad.org.cn/index.php?a=2&t=1&page= "& pg & "&"
    web.Navigate( wz )
    Do Until web.ReadyState = 4
        Application.DoEvents
    Loop
   
   
    Dim elems As object = web.Document.GetElementById("table1").GetElementsByTagName("tr")
    Dim m As Integer = 0
    Dim r As Integer = 0
    For Each elem As object In elems
        r = r + 1
        If r = elems.count Then
            Exit For
        End If
        Dim i As Integer = -1
        m = m + 1
        Dim tdelems As object =  elem.GetElementsByTagName("td")
        If tdelems.count > 0 Then
            Dim zl As String = tdelems(0).Innertext
            If m > 1 Then  '因为网页的表格有标题,如果不判断,就会增加出一个空行
                If tdelems(0).Innertext Like "*A320*" Or tdelems(0).Innertext Like "*A330*" Or tdelems(0).Innertext Like "*MULT*" Or tdelems(0).Innertext Like "*B737*" Then
                    dr = DataTables("ad").Find("指令编号 ='"& zl &"'")
                    If dr Is Nothing Then
                        Tables("ad").AddNew
                        For Each tdelem As object In tdelems
                            i = i+1
                            If i < 3 Then
                                Tables("ad").Current(Cols(i)) = tdelems(i).Innertext
                            ElseIf i = 3 Then
                                Tables("ad").Current(Cols(i)) = tdelems(5).Innertext
                                Exit For
                            End If
                        Next
                    End If
                End If
            End If
        End If
    Next
Next
Tables("ad").save

 回到顶部
总数 23 上一页 1 2 3 下一页