Foxtable(狐表)用户栏目专家坐堂 → [求助]网页取值(又有新问题,见8楼)


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

主题:[求助]网页取值(又有新问题,见8楼)

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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
[求助]网页取值(又有新问题,见8楼)  发帖心情 Post By:2020/3/18 10:32:00 [显示全部帖子]


Dim web As New System.Windows.Forms.WebBrowser()
web.ScriptErrorsSuppressed = True
web.Navigate("https://vip.stock.finance.sina.com.cn/corp/go.php/vCI_CorpOtherInfo/stockid/000002/menu_num/2.phtml")
Do Until web.ReadyState = 4
    Application.DoEvents
Loop

Dim tb As object = web.Document.GetElementsByTagName("table")(4)
Dim trs = tb.GetElementsByTagName("tr")
For i As Integer = 0 To trs.count-1
    Dim tds As object =  trs(i).GetElementsByTagName("td")
    For j As Integer = 0 To tds.count-1
        output.show(i & "行" & j & "列:" & tds(j).innerText)
    Next
Next

如何将0列的第2行至最后行的数据读成一个用 “,” 号分隔的字符串,请各位老师指教,谢谢!

[此贴子已经被作者于2020/3/19 10:16:14编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2020/3/18 10:52:00 [显示全部帖子]

谢谢有点蓝老师的指教,如果只需要0列第二行及以后的字符串(1列的数据不需要),代码如何写?还请老师指教,谢谢!!

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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2020/3/18 11:18:00 [显示全部帖子]

代码出错


图片点击可在新窗口打开查看此主题相关图片如下:捕获2.png
图片点击可在新窗口打开查看

代码如下,错在哪里?
Dim web As New System.Windows.Forms.WebBrowser()
web.ScriptErrorsSuppressed = True
web.Navigate("https://vip.stock.finance.sina.com.cn/corp/go.php/vCI_CorpOtherInfo/stockid/000002/menu_num/2.phtml")
Do Until web.ReadyState = 4
    Application.DoEvents
Loop

Dim tb As object = web.Document.GetElementsByTagName("table")(4)
Dim trs = tb.GetElementsByTagName("tr")

Dim s As String = ""
For i As Integer = 1 To trs.count-1
    Dim tds As object =  trs(i).GetElementsByTagName("td")
    s = s & "," & tds(0).innerText
Next
output.show(s)



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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2020/3/18 11:34:00 [显示全部帖子]

谢谢有点蓝老师,问题解决!!

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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2020/3/19 9:29:00 [显示全部帖子]

又有新问题,代码运行50行左右,跳出运行错误对话框“超出系统资源”,并退出程序,如何解决,请老师指教,谢谢!!



图片点击可在新窗口打开查看此主题相关图片如下:捕获3.png
图片点击可在新窗口打开查看



 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目5.foxdb




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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2020/3/19 13:16:00 [显示全部帖子]

谢谢有点蓝老师的指教,代码修改后,“超出系统资源”的问题得到解决,但是代码运行1000行左右会出现错误提示(如下),程序不会自己退出。
重新打开程序又可以运行,但是运行1000行左右,又会出现同样的错误,如何解决,还请有点蓝老师指教,谢谢!!


.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.1.19.19
错误所在事件:窗口,窗口1,Button1,Click
详细错误信息:
“3”的值对于“index”无效。“index”应介于 0 和 -1 之间。
参数名: index
[此贴子已经被作者于2020/3/19 13:16:38编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2020/3/20 12:47:00 [显示全部帖子]

根据老师的提示,写了一段代码进行判断,但是出现错误提示,错在哪里?还请老师指教,谢谢!!

Dim web As New System.Windows.Forms.WebBrowser()
web.ScriptErrorsSuppressed = True
For Each dr As DataRow In DataTables("表A").Select("","简码")
    If dr.IsNull("简码") = False Then
        web.Navigate("https://vip.stock.finance.sina.com.cn/corp/go.php/vCI_CorpOtherInfo/stockid/" & dr("简码") & "/menu_num/2.phtml")
        Do Until web.ReadyState = 4
            Application.DoEvents
        Loop
        Dim tb1 As object = web.Document.GetElementsByTagName("table")(3)
        If tb1.count > 3
            MessageBox.Show("出错1")
        End If
        Dim tb2 As object = web.Document.GetElementsByTagName("table")(4)
        If tb2.count > 4
            MessageBox.Show("出错2")
        End If
        Dim wz As Integer = Tables("表A").FindRow(dr)
        If wz >= 0 Then
            Tables("表A").Position = wz
        End If
    End If
Next


---------------------------
版本:2020.1.19.19
---------------------------
代码执行出错,错误信息:

System.MissingMemberException: 未找到类型“HtmlElement”的公共成员“count”。

   在 Microsoft.VisualBasic.CompilerServices.Symbols.Container.GetMembers(String& MemberName, Boolean ReportErrors)

   在 Microsoft.VisualBasic.CompilerServices.NewLateBinding.ObjectLateGet(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack)

   在 Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateGet(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack)

   在 UserCode.Test()
---------------------------
确定   
---------------------------

 回到顶部