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


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

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

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


加好友 发短信
等级:幼狐 帖子:135 积分:1751 威望:0 精华:0 注册:2013/12/2 12:01:00
  发帖心情 Post By:2016/3/15 11:44:00 [只看该作者]

我这样写报错

 

Do Until web.Document.Body.InnerHtml.Contains("自定义模式")
    Application.DoEvents
Loop

If web.Document.Body.InnerHtml.Contains("自定义模式")
    MessageBox.Show("包含")
End If

 

 

 


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

第一次点击按钮出现上面的错误,再次点击好像运行成功

 

 

 


图片点击可在新窗口打开查看此主题相关图片如下:bb.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2016/3/15 11:46:26编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


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


加好友 发短信
等级:幼狐 帖子:135 积分:1751 威望:0 精华:0 注册:2013/12/2 12:01:00
  发帖心情 Post By:2016/3/15 12:26:00 [只看该作者]

我试了还是报错,不知道什么原因,bin文件夹也删了

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | 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("自定义模式")


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


加好友 发短信
等级:幼狐 帖子:135 积分:1751 威望:0 精华:0 注册:2013/12/2 12:01:00
  发帖心情 Post By:2016/3/15 16:39:00 [只看该作者]

好的,非常感谢你的热心帮助

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


加好友 发短信
等级:幼狐 帖子:135 积分:1751 威望:0 精华:0 注册:2013/12/2 12:01:00
  发帖心情 Post By:2016/3/15 16:41:00 [只看该作者]

红袍大师,好消息,不报错了

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


加好友 发短信
等级:幼狐 帖子:135 积分:1751 威望:0 精华:0 注册:2013/12/2 12:01:00
  发帖心情 Post By:2016/3/15 22:11:00 [只看该作者]

请教老师,当使用InvokeMember("Click") 模拟点击网页超链接,当碰到这种<a href='javascript:personmode(1)'>50</a>链接的时候,是不是要经过其他处理才能正常打开链接后的页面

以下的代码,碰到难题了

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 = 5 Then li.GetElementsByTagName("a")(0).InvokeMember("Click") '执行该标签的点击方法,实现 Do Until web.Document.Body IsNot Nothing AndAlso 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 Dim lis1 As System.Windows.Forms.HtmlElementCollection = web.Document.GetElementsByTagName("li") '获得当前页面li标签 Dim count1 As Integer = 0 For Each li1 As object In lis1 If li1.GetAttribute("ClassName") = "kj_white_line" Then count1 += 1 If count1 = 4 Then Dim ltc As System.Windows.Forms.HtmlElementCollection = li1.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") '执行该标签的点击方法 Exit For '终止循环 End If End If Next Exit For End If End If Next
[此贴子已经被作者于2016/3/15 22:28:41编辑过]

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


加好友 发短信
等级:幼狐 帖子:135 积分:1751 威望:0 精华:0 注册:2013/12/2 12:01:00
  发帖心情 Post By:2016/3/15 22:27:00 [只看该作者]

如图提示报错

 


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

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


加好友 发短信
等级:幼狐 帖子:135 积分:1751 威望:0 精华:0 注册:2013/12/2 12:01:00
  发帖心情 Post By:2016/3/15 22:41:00 [只看该作者]

问题解决了,估计是页面没有加载完整
Do Until web.Document.Body IsNot Nothing AndAlso web.Document.Body.InnerHtml.Contains("自定义模式") Application.DoEvents Loop

改成

Do Until web.Document.Body IsNot Nothing AndAlso web.Document.Body.InnerHtml.Contains("返回") Application.DoEvents Loop

[此贴子已经被作者于2016/3/15 22:43:17编辑过]

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


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

加一句

 

web.ScriptErrorsSuppressed = True

 

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


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