麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

.NET從優(yōu)酷專輯中采集所有視頻及信息(VB.NET代碼)

2019-11-17 03:53:12
字體:
供稿:網(wǎng)友
夜聞香原創(chuàng),轉(zhuǎn)載請(qǐng)保留此信息,萬分感謝!
博客: http://clso.VEVb.com/
主頁: http://cleclso.cn/
QQ:315514678 E-mail:clso#qq.com
歡迎技術(shù)交流!


因?yàn)橄胱鲆粋€(gè)視頻點(diǎn)播類的網(wǎng)站,所以開始研究視頻采集。

這個(gè)方法就是提取優(yōu)酷的專輯ID,然后一個(gè)個(gè)ID進(jìn)行循環(huán)采集網(wǎng)頁代碼,從中提取title標(biāo)簽和VID,沒什么技術(shù)含量。=..=

采集中應(yīng)用.NET中的HttpWebRequest和HttpWebResponse類,代碼分析用了正則表達(dá)式。

這個(gè)代碼效率不是很好,一個(gè)網(wǎng)頁的解析時(shí)間在0.5~2秒之間,不適合大量采集。也許將它轉(zhuǎn)換成javaScript速度會(huì)快一點(diǎn)吧。

暫時(shí)就研究這么多,代碼直接發(fā)出來給大家共享一下。



代碼VB.NET,新建一個(gè)窗體frmMain,添加一個(gè)TextBox,一個(gè)ListBox,兩個(gè)Button,復(fù)制下面的代碼:



Imports System.Net
Imports System.IO
Imports System.Text
Imports System.Text.RegularExPRessions

Public Class frmMain

    Structure VList
        Dim id As Integer
        Dim title As String
        Dim vid1 As String
        Dim vid2 As String

        Overloads Function ToString() As String
            Return String.Format("{0}:<{1}> [{2}]", id, title, vid1)
        End Function
    End Structure

    Dim myList As New List(Of VList)

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ' 防止重復(fù)創(chuàng)建變量
        Dim wr1 As HttpWebRequest
        Dim wr2 As HttpWebResponse
        Dim ret As String
        Dim reg As Match
        Dim g As Group

        Dim preVid As String = "" '上一個(gè)VID
        Dim nowid As Integer = 0 '當(dāng)前的視頻集數(shù)

        Dim listUrl As String = TextBox1.Text '獲取專輯URL,如 http://www.youku.com/playlist_show/id_2350764.html
        Dim tarUrl As String = "http://v.youku.com/v_playlist/f{0}" '{0}ListID

        reg = Regex.Match(listUrl, "playlist_show/id_(/d+).*/.html")
        If Not reg.Success Then
            MsgBox("專輯列表提取失敗!")
            Exit Sub
        End If
        g = reg.Groups(1)
        tarUrl = String.Format(tarUrl, g.Value) & "o{1}p{0}.html" '{0}集數(shù) {1}排序

        wr1 = HttpWebRequest.Create(TextBox1.Text)
        wr2 = wr1.GetResponse
        ret = New StreamReader(wr2.GetResponseStream, Encoding.GetEncoding(wr2.CharacterSet)).ReadToEnd

        reg = Regex.Match(ret, "<title>(.+) - 專輯 - 優(yōu)酷視頻</title>")
        If Not reg.Success Then
            MsgBox("專輯名稱提取失敗!")
        Else
            g = reg.Groups(1)
            MsgBox("專輯名:《" & g.Value & "》")
        End If

        Do
            ' 從Web流中獲取頁面文本
            wr1 = HttpWebRequest.Create(String.Format(tarUrl, nowid, "0")) '按倒序方式查找視頻
            wr2 = wr1.GetResponse
            ret = New StreamReader(wr2.GetResponseStream, Encoding.GetEncoding(wr2.CharacterSet)).ReadToEnd

            'TextBox2.Text = ret

            ' 創(chuàng)建一個(gè)臨時(shí)視頻列表變量
            Dim nlist As New VList
            nlist.id = nowid '獲取ID
            ' 獲取videoId
            reg = Regex.Match(ret, "var/s+videoId/s*=/s*""(/d+)""/s*;")
            If Not reg.Success Then Exit Do
            g = reg.Groups(1)
            ' 如果VID等于上一個(gè)VID最退出
            If g.Value = preVid Then Exit Do
            nlist.vid1 = g.Value
            ' 獲取videoId2
            reg = Regex.Match(ret, "var/s+videoId2/s*=/s*""((/w|=)+)""/s*;")  '"var/s+videoId2/s*=/s*""(/w+)""/s*;")
            If Not reg.Success Then Exit Do
            g = reg.Groups(1)
            nlist.vid2 = g.Value
            ' 獲取標(biāo)題
            reg = Regex.Match(ret, "<title>(.+) - (.+) - 視頻 - 優(yōu)酷視頻 - 在線觀看 - </title>")
            If Not reg.Success Then
                nlist.title = "{名稱查找錯(cuò)誤}"
            Else
                g = reg.Groups(2)
                nlist.title = g.Value
            End If
            ' 收尾工作
            myList.Add(nlist) '添加到總列表中
            preVid = nlist.vid1 '記錄最后一個(gè)VID
            wr2.Close()

            Me.Text = nowid & " : 處理完成!"

            nowid += 1

        Loop

        wr2.Close()
        MsgBox(nowid & " 個(gè)視頻全部采集處理完成!")

        Button2_Click(sender, e)
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        ListBox1.Items.Clear()
        For Each ls As VList In myList
            ListBox1.Items.Add(String.Format("{0}:<{1}> [{2}]", ls.id, ls.title, ls.vid1))
        Next
        myList.Clear()
    End Sub


End Class







第一次準(zhǔn)備自己寫代碼做網(wǎng)站,有沒有大哥帶帶我,數(shù)據(jù)庫好麻煩啊。>_<


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 精品国产一区二区三区四区阿崩 | 永久免费黄色片 | 日本在线不卡一区二区 | 欧美爱爱视频 | 国产精品久久久久久久久久了 | 亚洲第一色片 | 色女人在线 | 羞羞视频免费网站含羞草 | 国产资源在线看 | 永久免费黄色片 | 看国产毛片 | 日日碰日日操 | 免费毛片播放 | 国产精品999在线 | 成人午夜在线播放 | 激情综合婷婷久久 | 欧美雌雄另类xxxxx | 免费高潮在线国 | 亚洲欧美一区二区三区在线观看 | 国产乱淫a∨片免费观看 | 成人在线视频播放 | 国产一区二区三区四区五区加勒比 | 国产无遮挡一级毛片 | 亚洲啪啪 | 精品一区二区久久久久久按摩 | 91一区二区在线观看 | 成人在线观看一区二区三区 | 激情亚洲一区二区 | 91网视频 | 成人一级视频 | 欧美在线观看视频一区 | 中文字幕www.| 高清中文字幕在线 | 久久精品99久久久久久2456 | 羞羞视频| 色综合激情 | 毛片视频大全 | 国产成人观看 | 九九热这里只有精品8 | 特逼视频 | 国产精品观看在线亚洲人成网 |