Foxtable(狐表)用户栏目专家坐堂 → 代码获取网页数据~~~~~~~~~~~~~~~


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

主题:代码获取网页数据~~~~~~~~~~~~~~~

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/9/11 13:12:00 [显示全部帖子]

做了个小例子,自己参考下,亲......

文档:http://msdn.microsoft.com/zh-cn/library/system.windows.forms.htmldocument.aspx


 
Dim web As New System.Windows.Forms.WebBrowser()
web.Navigate("http://www.foxtable.com")
Do Until web.ReadyState = 4
    Application.DoEvents
Loop

' 自己取数据
Dim elems As System.Windows.Forms.HtmlElementCollection
Elems = web.Document.GetElementsByTagName("META")   '根据标签得到数据集合
For Each elem As System.Windows.Forms.HtmlElement In Elems
    Dim NameStr As String = elem.GetAttribute("name")   '得到属性
    If ((NameStr IsNot Nothing) And (NameStr.Length <> 0)) Then
        If NameStr.ToLower().Equals("description") Then
            Dim ContentStr As String = elem.GetAttribute("content")
            MessageBox.Show("Document: " & web.Url.ToString() & vbCrLf & "Description: " & ContentStr)
        End If
    End If
Next


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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/9/11 16:05:00 [显示全部帖子]

vb 解释json 数据小例

' {"first_1":123,"first_2":{"second_1":444,"second_2":{"month":10,"year":18}}}
Dim json As String = "{""first_1"":123,""first_2"":{""second_1"":444,""second_2"":{""month"":10,""year"":18}}}"

Dim ScriptControl As Object, data  As Object, JscriptCode As String
JscriptCode = "function toObject(json) {eval(""var o=""+json);return o;}"
ScriptControl = CreateObject("MSScriptControl.ScriptControl")
With ScriptControl
    .Language = "Javascript"
    .Timeout = -1
    .AddCode(JscriptCode)
    data = .Run("toObject", json)
End With

MessageBox.Show(data.first_2.second_2.month)

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/9/11 17:45:00 [显示全部帖子]

替换网址,自己找你要的数据。

Dim XMLH As Object
XMLH = CreateObject("Microsoft.XMLHTTP")
XMLH.open("GET", "http://api.kuaidi100.com/api?id=xxxxxxxxxxxxx&com=tiantian&nu=11111&show=0&muti=1&order=desc", True)
XMLH.send(Nothing)
Do While XMLH.readyState <> 4
    Application.DoEvents
Loop

Dim json As String = XMLH.responseText
Dim ScriptControl As Object, data  As Object, JscriptCode As String
JscriptCode = "function toObject(json) {eval(""var o=""+json);return o;}"
ScriptControl = CreateObject("MSScriptControl.ScriptControl")
With ScriptControl
    .Language = "Javascript"
    .Timeout = -1
    .AddCode(JscriptCode)
    data = .Run("toObject", json)
End With

MessageBox.Show(data.message)
MessageBox.Show(data.status)

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/10/18 15:55:00 [显示全部帖子]

以下是引用Fotable在2012-10-18 15:04:00的发言:

还一种写法是 :

dim web as object

web = CreateObject("Internetexplorer.Application")
web.Navigate("http://ball365.net/") '网址

 

这个写法和

Dim web As New System.Windows.Forms.WebBrowser()
web.Navigate("http://www.foxtable.com")
这个写法的区别是什么

或者

Dim XMLH As Object
XMLH = CreateObject("Microsoft.XMLHTTP")
XMLH.open("GET", "http://api.kuaidi100.com/", True)

[此贴子已经被作者于2012-10-18 15:18:02编辑过]

不知道,能用就行,不用太纠结。

第一个好用;第二个创建一个IE实例;第三个是异步调用。

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/10/18 16:36:00 [显示全部帖子]

以下是引用Fotable在2012-10-18 16:14:00的发言:

我想在窗口创建一个webbrowser空间,然后如何获得这个控件网页的 dom呢


微软的帮助很详细 http://msdn.microsoft.com/zh-cn/library/system.windows.forms.webbrowser%28v=vs.80%29.aspx

在窗口添加控件,例子 http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=24149&authorid=0&page=0&star=1

 回到顶部