Re: [.NET] 想寫即時新聞跑馬燈 該如何使用??
我用VB6寫了一個
抓取網頁的部份是用Inet
讀取xml的部份是自己用一堆字串的函式弄出來的
因為我不知道xml可以用哪些元件去解析 所以就自己動手寫了
流程就是
抓取網頁 -> 把網頁存檔 -> 讀取檔案 -> 開始抓取字串 -> 輸出
抓取網頁的程式碼是之前從網路上看來的 是把原始碼寫入檔案的方法
所以我就把網頁寫入一個1.txt 然後再讀進來
讀進來的部分因為直接讀會亂碼 編碼要採用utf-8
所以就Google到了一篇
http://0rz.tw/EifAi
就直接把裡面的程式碼複製貼上了
程式執行出來的結果是這樣
http://0rz.tw/Wb4Ks
你可以選擇去看我貼在網路上的程式碼
http://0rz.tw/a3zC3
或是我貼在下面的
不過我比較建議用上面的連結看就是了
程式碼如下:
Function GetHtml(ByVal str As String) As String
If Dir(App.Path & "\1.txt") <> "" Then
Kill App.Path & "\1.txt"
End If
Dim b() As Byte
Dim str2 As String
'取消所有動作
Form1.Inet1.Cancel
'設定通訊協定為 HTTP
Form1.Inet1.Protocol = icHTTP
'設定 URL 屬性
Form1.Inet1.URL = str
'將讀取的 HTML 資料放進一個 byte array.
b() = Form1.Inet1.OpenURL(, icByteArray)
'建立一個暫存檔來存放抓回來的 html 檔
Open App.Path & "\1.txt" For Binary Access Write As #1
Put #1, , b()
Close #1
End Function
Private Sub Command1_Click()
Call GetHtml("http://www.libertytimes.com.tw/rss/sp.xml")
Dim objStream As Object
Set objStream = CreateObject("ADODB.Stream")
Dim str As String
With objStream
.Type = 2
.Mode = 3
.Open
.Charset = "UTF-8" ' 或其他編碼
.LoadFromFile App.Path & "\1.txt"
End With
str = objStream.readtext ' str=網頁的原始碼
str = Right(str, Len(str) - 450) '把前面那自由時報的標題之類的去掉
Dim TitleStart As Long '標題字串開始的地方
Dim TitleEnd As Long '結束的地方
Dim LinkStart As Long
Dim LinkEnd As Long
Dim DateStart As Long
Dim DateEnd As Long
Dim Title As String ' 標題
Dim Links As String ' 連結
Dim Dates As String '日期
TitleStart = 0
TitleEnd = 0
LinkStart = 0
LinkEnd = 0
DateStart = 0
DateEnd = 1
While InStr(DateEnd + 1, str, "</pubDate>") <> 0 '外圍加個迴圈
'抓取標題開始
TitleStart = InStr(TitleStart + 1, str, "<title>")
TitleEnd = InStr(TitleEnd + 1, str, "</title>")
Title = Mid(str, TitleStart + 7, TitleEnd - TitleStart - 7) '擷取<"title">到<"/title">之間的字串
'抓取標題結束
'抓取連結開始
LinkStart = InStr(LinkStart + 1, str, "<link>")
LinkEnd = InStr(LinkEnd + 1, str, "</link>")
Links = Mid(str, LinkStart + 6, LinkEnd - LinkStart - 6)
'抓取連結結束
'抓取日期開始
DateStart = InStr(DateStart + 1, str, "<pubDate>")
DateEnd = InStr(DateEnd + 1, str, "</pubDate>")
Dates = Mid(str, DateStart + 9, DateEnd - DateStart - 9)
'抓取日期結束
Text1.Text = Text1.Text & "標題:" & Title & " ,連結:" & Links & " ,日期:" & Dates & vbCrLf
Wend
End Sub
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.162.46
推
04/01 10:22, , 1F
04/01 10:22, 1F
推
04/01 10:25, , 2F
04/01 10:25, 2F
→
04/01 23:02, , 3F
04/01 23:02, 3F
討論串 (同標題文章)