方法一:webbrowser的outhtml法

利用webbrowser打開網頁,然後通過outhtml輸出源碼,再加以分析利用。

方法二:WebClient的Downloaddata法

利用webclient下載源碼,再加以分析利用。

方法三:XMLHTTP及流對象法

利用MSXML2.XMLHTTP與adodb.stream獲取源碼,再加以分析利用。

經過多次的測試,獲得源碼速度的排序是:

方法三 > 方法一 > 方法二

也就是說,用XMLHTTP的方法是獲得網頁源碼最快的方式。方法二所用時間是方法三的三倍,是方法一的二倍

下面我把幾個方法的主要過程(函數)列出來,大家可以參考指正

XMLHTTP及流對象法的基本函數

Function GetPage(ByVal url)

        Dim Retrieval
        Retrieval = CreateObject("MSXML2.XMLHTTP")
        With Retrieval
            .Open("Get", url, False) ', "", ""
              .Send()
            GetPage = BytesToBstr(.ResponseBody)
        End With

        Retrieval = Nothing
End Function
Function BytesToBstr(ByVal body)
        Dim objstream
        objstream = CreateObject("adodb.stream")
        objstream.Type = 1
        objstream.Mode = 3
        objstream.Open()
        objstream.Write(body)
        objstream.Position = 0
        objstream.Type = 2
        objstream.Charset = "utf-8"       '這裡是設定編碼的
        BytesToBstr = objstream.ReadText
        objstream.Close()
        objstream = Nothing
    End Function

WebClient的Downloaddata法的基本函數

Function gethtml(ByVal u As String, ByVal bm As String) As String
        Dim Doc As New WebClient
        Dim T As String = ""
        Try
            If bm = "utf-8" Then
                T = System.Text.Encoding.UTF8.GetString(Doc.DownloadData(u))
            ElseIf bm = "gb2312" Then
                T = System.Text.Encoding.Default.GetString(Doc.DownloadData(u))
            End If
            Return T
        Catch ex As Exception
            Return ""
        End Try
    End Function

webbrowser的outhtml法的基本函數

利用WebBrowser的DocumentCompleted,獲取webBrowser1.Document.Body.OuterHtml





=================================
VB.net保存遠程文件到本地並用進度條進行顯示的方法
 

首先在form裡添加一個ProgressBar,命名為prg1

然後指定要下載的文件路徑比如

dim remote as string ="http://www.abc.com/aa.exe" '遠程文件

dim local as string ="bb.exe" '本地文件

然後進行調用:

DownloadFile(remote, local,Me.prg1)

主函數:

Public Shared Sub DownloadFile(ByVal URL As String, ByVal Filename As String, ByVal Prog As ProgressBar)
    Dim Myrq As HttpWebRequest = HttpWebRequest.Create(URL)
    Dim myrp As HttpWebResponse = Myrq.GetResponse
    Dim totalBytes As Long = myrp.ContentLength
    Prog.Maximum = totalBytes
    Dim st As Stream = myrp.GetResponseStream
    Dim so As Stream = New FileStream(Filename, FileMode.Create)
    Dim totalDownloadedByte As Long = 0
    Dim by(1024) As Byte
    Dim osize As Integer = st.Read(by, 0, by.Length)
    While osize > 0
        totalDownloadedByte = osize + totalDownloadedByte
        System.Windows.Forms.Application.DoEvents()
        so.Write(by, 0, osize)
        Prog.Value = totalDownloadedByte
        osize = st.Read(by, 0, by.LongLength)
    End While
    so.Close()
    st.Close()
End Sub

文章標籤

dark99 發表在 痞客邦 留言(0) 人氣()

連結

http://www.opendrive.com/

 

可支援外連

dark99 發表在 痞客邦 留言(0) 人氣()

這程式用 Vb.net 開發 請自行準備 .net framework 3.5

 

 

檔案下載

http://www.ziddu.com/download/17622711/Checkhtml.rar.html

文章標籤

dark99 發表在 痞客邦 留言(0) 人氣()

一段範例如下

<DT><H3 ADD_DATE="1312850481" LAST_MODIFIED="1319985361">書籤工具列</H3>
        <DL><p>
            <DT><H3 ADD_DATE="1312850481" LAST_MODIFIED="1319985363">Android___</H3>
            <DL><p>
                <DT><A HREF="http://gphonefans.net/forum-49-3.html" ADD_DATE="1310539680" LAST_MODIFIED="1319985346">Android 軟件及遊戲討論 - GPhonefans.net</A>
                <DT><A HREF="http://www.soft4fun.net/website-recommand/10%E5%80%8B-android-%E5%85%8D%E8%B2%BB-app-%E4%B8%8B%E8%BC%89%E3%80%81%E4%BB%8B%E7%B4%B9%E7%B6%B2%E7%AB%99.htm" ADD_DATE="1310722061" LAST_MODIFIED="1319985346">10個 Android 免費 APP 下載、介紹網站 | 硬是要學</A>
                <DT><A HREF="http://www.freewarelovers.com/android/category/system" ADD_DATE="1310740049" LAST_MODIFIED="1319985346">Android Freeware: Browse the SYSTEM category</A> 

 

如果我們想要取

 

<A HREF="http://gphonefans.net/forum-49-3.html" ADD_DATE="1310539680" LAST_MODIFIED="1319985346">Android 軟件及遊戲討論 - GPhonefans.net</A> 


這段 內的 Href= 後面的字串該怎麼寫 程式碼呢

'

文章標籤

dark99 發表在 痞客邦 留言(0) 人氣()

剛剛逛到 MSDN 搜尋到 一些參考資料

還不錯用喔

[Library][C#]USkin 視窗換膚函式庫

http://www.dotblogs.com.tw/larrynung/archive/2009/08/28/10301.aspx

 

 

[C#][VB.NET]自定義.NET WindowForm表單介面

http://www.dotblogs.com.tw/larrynung/archive/2008/11/11/5959.aspx

 

[C#][VB.NET]自定義.NET WindowForm表單介面(二)

http://www.dotblogs.com.tw/larrynung/archive/2009/03/21/7625.aspx

 

[VB.NET]自定義.NET WindowForm表單介面(三)

http://www.dotblogs.com.tw/larrynung/archive/2010/04/23/14759.aspx

文章標籤

dark99 發表在 痞客邦 留言(0) 人氣()