Foxtable(狐表)用户栏目专家坐堂 → 怎么获取网页内容并操作网页


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

主题:怎么获取网页内容并操作网页

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/14 22:21:00 [显示全部帖子]


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/14 22:23:00 [显示全部帖子]

 用IE浏览器,用兼容模式。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/14 23:37:00 [显示全部帖子]

Dim web As System.Windows.Forms.WebBrowser = e.Form.Controls("WebBrowser1").basecontrol
web.Navigate("http://wap.pceggs.com/play/pc28.aspx")
Do Until web.ReadyState = 4
    Application.DoEvents
Loop
Dim lis As System.Windows.Forms.HtmlElementCollection = web.Document.GetElementsByTagName("li") '获得当前页面的A标签HTML元素集合
Dim count As Integer = 0
For Each li As object In lis
    If li.GetAttribute("ClassName") = "kj_white_line" Then
        count += 1
        If count = 4 Then
            li.GetElementsByTagName("a")(0).InvokeMember("Click") '执行该标签的点击方法,实现
        End If
    End If
Next

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/15 11:33:00 [显示全部帖子]

一样像这样获取

 

Dim lis As System.Windows.Forms.HtmlElementCollection = web.Document.GetElementsByTagName("li")


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/15 11:51:00 [显示全部帖子]

我测试没问题

 

Dim web As System.Windows.Forms.WebBrowser = e.Form.Controls("WebBrowser1").basecontrol
web.Navigate("http://wap.pceggs.com/play/pc28.aspx")
Do Until web.ReadyState = 4
    Application.DoEvents
Loop
Dim lis As System.Windows.Forms.HtmlElementCollection = web.Document.GetElementsByTagName("li") '获得当前页面的A标签HTML元素集合
Dim count As Integer = 0
For Each li As object In lis
    If li.GetAttribute("ClassName") = "kj_white_line" Then
        count += 1
        If count = 4 Then
            li.GetElementsByTagName("a")(0).InvokeMember("Click") '执行该标签的点击方法,实现
            Do Until web.Document.Body.InnerHtml.Contains("自定义模式")
                Application.DoEvents
            Loop
           
            If web.Document.Body.InnerHtml.Contains("自定义模式")
                MessageBox.Show("包含")
            End If
           
            Exit For
        End If
    End If
Next


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/15 12:31:00 [显示全部帖子]

那你就判断一下,不然就判断一下哪里出问题

 

Do Until  web.Document.Body IsNot Nothing AndAlso web.Document.Body.InnerHtml.Contains("自定义模式")


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/15 22:53:00 [显示全部帖子]

加一句

 

web.ScriptErrorsSuppressed = True

 

如果还有问题,上传具体例子。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/16 12:12:00 [显示全部帖子]

汗,确认投 注的代码这样写,就一句代码。

 

应该是webbrowser不支持它那样写的onclick事件代码。

 

web.Document.InvokeScript("eval", new String() {"document.getElementById('form1').submit();" })

[此贴子已经被作者于2016/3/16 12:14:30编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/16 12:28:00 [显示全部帖子]

完整代码

 

Dim tz As String = "5余0"
Dim web As System.Windows.Forms.WebBrowser = e.Form.Controls("WebBrowser1").basecontrol
web.Navigate("http://wap.pceggs.com/play/pc28.aspx")
Do Until web.ReadyState = 4
    Application.DoEvents
Loop
Dim lis As System.Windows.Forms.HtmlElementCollection = web.Document.GetElementsByTagName("li") '获得当前页面的A标签HTML元素集合
Dim count As Integer = 0
For Each li As object In lis
    If li.GetAttribute("ClassName") = "kj_white_line" Then
        count += 1
        If count = 4 Then
            If li.GetElementsByTagName("a")(0).Innertext.Contains ("开奖中") = False Then
                li.GetElementsByTagName("a")(0).InvokeMember("Click") '执行该标签的点击方法,实现
                Do Until  web.Document.Body IsNot Nothing AndAlso  web.Document.Body.InnerHtml.Contains("返回")
                    Application.DoEvents
                Loop
            Else
                MessageBox.Show("开奖中")
            End If
            Exit For
        End If
    End If
Next
'选择投 注模式代码开始-----------------------------------------------------------------
lis = web.Document.GetElementsByTagName("li") '获得当前页面的A标签HTML元素集合
count = 0
For Each li As object In lis
    If li.GetAttribute("ClassName") = "kj_white_line" Then
        count += 1
        If  count = 4 Then
            Dim ltc As System.Windows.Forms.HtmlElementCollection = li.GetElementsByTagName("a") '获取该li内的所有a标签
            For ii As Integer = 0 To ltc.count - 1
                If ltc(ii).OuterHtml.contains("javascript:personmode") Then '如果a标签包含personmode个人模式这个字符串
                    If ltc(ii).InnerText.contains(tz) Then
                       
                        ltc(ii).InvokeMember("Click") '执行该标签的点击方法
                        Do Until val(web.Document.GetElementById("betting_eggs").InnerText) > 0
                            Application.DoEvents
                        Loop
                        Exit For '终止循环
                    End If
                End If
            Next
            Exit For
        End If
    End If
Next
'选择投 注模式代码结束-----------------------------------------------------------------


web.Document.InvokeScript("eval", new String() {"document.getElementById('form1').submit();" })


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/16 14:56:00 [显示全部帖子]

看24楼啊,没问题啊。

 回到顶部
总数 12 1 2 下一页