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


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

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

帅哥哟,离线,有人找我吗?
fslfyc
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | 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
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

如图提示报错

 


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

 回到顶部
帅哥哟,离线,有人找我吗?
fslfyc
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

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


加好友 发短信
等级:幼狐 帖子:135 积分:1751 威望:0 精华:0 注册:2013/12/2 12:01:00
  发帖心情 Post By:2016/3/16 10:54:00 [显示全部帖子]

红袍你好,又来请教你了。


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

目前碰到的问题是增加确认touzhu的代码以后,连选择touzhu模式代码也无效了

'确认tz的代码开始-----------------------------------------------------------------
Dim lis2 As System.Windows.Forms.HtmlElementCollection = web.Document.GetElementsByTagName("li") '获得当前页面li标签
Dim count2 As Integer = 0
For Each li2 As object In lis2
    If li2.GetAttribute("ClassName") = "kj_white_line" Then
        count2 += 1
        If  count2 = 3 Then
            Dim ltd As System.Windows.Forms.HtmlElementCollection = li2.GetElementsByTagName("a") '获取该li内的所有a标签
            For ii As Integer = 0 To ltd.count - 1
                If ltd(ii).OuterHtml.contains("document.getElementById('form1').submit();") Then '如果a标签包含特定字符串
                    If ltd(ii).InnerText.contains("tz") Then  '因为发帖限制用tz代替,实际是中文
                        ltd(ii).InvokeMember("Click") '执行该标签的点击方法
                        Exit For '终止循环
                    End If
                End If
            Next
            Exit For
        End If
    End If
Next
'确认tz的代码结束-----------------------------------------------------------------
[此贴子已经被作者于2016/3/16 10:58:55编辑过]

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


加好友 发短信
等级:幼狐 帖子:135 积分:1751 威望:0 精华:0 注册:2013/12/2 12:01:00
  发帖心情 Post By:2016/3/16 10:56:00 [显示全部帖子]

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

[此贴子已经被作者于2016/3/16 10:56:33编辑过]

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


加好友 发短信
等级:幼狐 帖子:135 积分:1751 威望:0 精华:0 注册:2013/12/2 12:01:00
  发帖心情 Post By:2016/3/16 12:44:00 [显示全部帖子]

打死我也想不到要这样写码

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


加好友 发短信
等级:幼狐 帖子:135 积分:1751 威望:0 精华:0 注册:2013/12/2 12:01:00
  发帖心情 Post By:2016/3/16 13:10:00 [显示全部帖子]

还是有问题

 


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

 

说没有投 注,

感觉这些问题已经不在我能力范围了图片点击可在新窗口打开查看

 


 

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

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


加好友 发短信
等级:幼狐 帖子:135 积分:1751 威望:0 精华:0 注册:2013/12/2 12:01:00
  发帖心情 Post By:2016/3/17 20:42:00 [显示全部帖子]

知道原因在哪了 谢谢


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


加好友 发短信
等级:幼狐 帖子:135 积分:1751 威望:0 精华:0 注册:2013/12/2 12:01:00
  发帖心情 Post By:2016/4/6 21:36:00 [显示全部帖子]

请教一下字符串去重复字符怎么写代码?
比如有一串字符155808,去重复后变成1580

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


加好友 发短信
等级:幼狐 帖子:135 积分:1751 威望:0 精华:0 注册:2013/12/2 12:01:00
  发帖心情 Post By:2016/4/7 19:15:00 [显示全部帖子]

谢谢红袍!
我还多此一举,用substring把字符串拆分成数组


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