以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教如何获取网页源码?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=73513)

--  作者:zhy400137
--  发布时间:2015/8/20 14:20:00
--  请教如何获取网页源码?
如何像VB一样写一个获取网页源码的函数,想在FX里实时加载一张网页图下,能否给个例子,
论坛里有个例子,但好像和下面VB获取的源码信息不一致,请教下。

Function 获取网页源码(网站,提交类型,提交参数,字符串开始特征,字符串结束特征)

    \'网站: 字符串,-> "wwwbaiducom"

    \'提交类型: "POST" 或者 "GET"

    \'提交参数: -> search=QQ&QQ=304834484

    \'字符串开始特征: -> "<title>"

    \'字符串结束特征: -> "</title>"

    Dim 出现位置:出现位置=0

    Dim 结束位置:结束位置=0

    Dim 返回源码:返回源码=""

    Set Http=createobject("Msxml2.XMLHTTP")

    Http.open 提交类型, 网站, False

    If UCase(提交类型)="POST" Then

        Http.setRequestHeader "CONTENT-TYPE", "application/x-www-form-urlencoded"

    End If

    Http.Send (提交参数)

    返回源码=Trim(Http.responseText)

    If 字符串开始特征<>"" and  字符串结束特征<>"" Then

        出现位置=Instr(1,返回源码,字符串开始特征)

        If 出现位置<>0 Then

                 结束位置=Instr(出现位置,返回源码,字符串结束特征)

            获取网页源码=Mid(返回源码,出现位置+Len(字符串开始特征),结束位置-出现位置-Len(字符串开始特征))

        Else

            获取网页源码=False

        End If

    Else

        获取网页源码=返回源码

    End If

    Set Http=Nothing

End Function


--  作者:大红袍
--  发布时间:2015/8/20 14:25:00
--  

Dim url As String = "http://www.foxtable.com"

Dim rqst As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create(url)

Dim rsps As System.Net.HttpWebResponse = rqst.GetResponse

Dim stm As System.IO.Stream = rsps.GetResponseStream()

Dim reader As New System.IO.StreamReader(stm)

Dim str As String = reader.ReadToEnd

rsps.Close
stm.Close
reader.close

msgbox(str)


--  作者:zhy400137
--  发布时间:2015/8/20 15:05:00
--  
可以了,谢谢,但代码有点慢,第一次读取时!
--  作者:zhy400137
--  发布时间:2015/8/20 15:09:00
--  
可能再提高一点速度不,老师,请教!
--  作者:大红袍
--  发布时间:2015/8/20 15:29:00
--  
快慢取决于你的网速和网页内容的多少啊