Foxtable(狐表)用户栏目专家坐堂 → 网页数据采集问题?


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

主题:网页数据采集问题?

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


加好友 发短信
等级:小狐 帖子:334 积分:2370 威望:0 精华:0 注册:2014/3/15 16:25:00
网页数据采集问题?  发帖心情 Post By:2014/5/25 17:45:00 [只看该作者]

有个网页数据要采集,试了介绍的好几样方法都不得行,如何采集?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:临床医生工作平台 ( gd-cwp ).rar






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


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

 你这个简单,直接用id去取值即可,比如

 

Dim o As Object = e.form.controls("WebBrowser1").basecontrol.Document.GetElementById("registerInfo.hospitalCardid")

msgbox(o.GetAttribute("value"))

 

 


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


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

 比如,完整代码

 

Dim web As New System.Windows.Forms.WebBrowser()
web.ScriptErrorsSuppressed = True
web.Navigate("d:\临床医生工作平台 ( GD-CWP ).htm")
Do Until web.ReadyState = 4
    Application.DoEvents
Loop


'取数据
Dim o As Object = web.Document.GetElementById("registerInfo.hospitalCardid")

msgbox(o.GetAttribute("value"))


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


加好友 发短信
等级:小狐 帖子:334 积分:2370 威望:0 精华:0 注册:2014/3/15 16:25:00
  发帖心情 Post By:2014/5/26 0:37:00 [只看该作者]

正在测试,谢谢

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


加好友 发短信
等级:小狐 帖子:334 积分:2370 威望:0 精华:0 注册:2014/3/15 16:25:00
  发帖心情 Post By:2014/5/26 23:50:00 [只看该作者]

测试成功,谢谢了

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


加好友 发短信
等级:小狐 帖子:334 积分:2370 威望:0 精华:0 注册:2014/3/15 16:25:00
  发帖心情 Post By:2015/2/12 23:36:00 [只看该作者]

再提一个问题,在下面的网页(服务器的,不是本地的),提取查询结果,可以不?

e.Form.Controls("WebBrowser1").address="M:\临床医生工作平台 ( GD-CWP )333.htm"
Dim drr01 As String = e.Form.Controls("textbox2").text   '用于输入住院号

Dim web As New System.Windows.Forms.WebBrowser()
web.ScriptErrorsSuppressed = True
web.Navigate("M:\临床医生工作平台 ( GD-CWP )333.htm")
Do Until web.ReadyState = 4
    Application.DoEvents
Loop

web.Document.GetElementById("searchFilter.clinicHospitalno").SetAttribute("Value","")  '输入住院号查询
web.Document.GetElementById("searchFilter.clinicHospitalno").SetAttribute("Value","14522")  '输入住院号查询
web.Document.GetElementById("searchFilter.timeFilterType").SetAttribute("Value","不过滤")  '输入住院号查询

Dim hec As System.Windows.Forms.HtmlElementCollection = web.Document.GetElementsByTagName("input")
For i As Integer = 0 To hec.Count-1
    If hec(i).OuterHtml.Contains("查 询") Then
        hec(i).InvokeMember("click")
        web.Navigate("M:\临床医生工作平台 ( GD-CWP )333.htm")
        
'        Exit For
    End If
Next

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:临床医生工作平台 ( gd-cwp )333.rar



[此贴子已经被作者于2015/2/12 23:36:57编辑过]

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


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

如果可以直接访问服务器的htm文件,就可以。

 

比如 http://192.168.1.9/xxx.htm

 

或者局域网 \\192.168.1.9\共享文件夹\xxx.htm


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


加好友 发短信
等级:小狐 帖子:334 积分:2370 威望:0 精华:0 注册:2014/3/15 16:25:00
  发帖心情 Post By:2015/2/13 13:29:00 [只看该作者]

基本可以了,但是这代码要点2次才行,那的问题

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


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

 你给的例子无法测试。

 

 试试把这句代码去掉 web.Navigate("M:\临床医生工作平台 ( GD-CWP )333.htm")

 


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


加好友 发短信
等级:小狐 帖子:334 积分:2370 威望:0 精华:0 注册:2014/3/15 16:25:00
  发帖心情 Post By:2015/2/13 15:42:00 [只看该作者]

放在全局变量中可以了?
但是还有个问题,如何偱环打开查询结果网页(查看里面的网页地址)

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