使用VB.net将变量定义为页面源中的URL?

时间:2011-04-27 01:31:54

标签: vb.net http video download query-string

我在VB.net中编写一个程序,包括三个主要步骤:

步骤1:在textbox1中显示正在其上流式传输电影的网页的源代码。

第2步:在源代码中突出显示该电影的URL,然后在textbox3中仅显示该URL。

步骤3:使用 HttpWebRequest HttpWebResponse 将该电影下载到用户定义的目录

问题是我不知道如何有效地从源代码中提取URL。也许我可以尝试在源代码中搜索字符串“.mp4”或“.avi”或其他视频扩展,但这只会找到链接的结尾,我将如何突出显示整个链接?

例如:如果我在源代码中搜索“ .mp4 ”并且有一个网址,例如

  

“http://megavideo.com/g7987bfd0fg.mp4”

然后我才会得到

  

“http://megavideo.com/g7987bfd0fg   的的.mp4

我知道有一些方法可以从文档中的某个字符开始,向前或向后移动几个字符,但是当你不知道由于不同长度的URL而返回多少个字符时会出现问题...有什么方法可以搜索 http:// ,然后搜索 .mp4 ,然后突出显示它们之间的所有内容?

#EDIT#我还需要能够将此网址提供给另一个将使用“ httpwebrequest ”和“ httpwebresponse >所以如果我能做的话会很理想:

textbox3.text = extracted link

提前致谢!

2 个答案:

答案 0 :(得分:0)

我要做的是做一个正则表达式匹配来找到我正在寻找的字符串。

这是一个以Regex pattern for checking if a string starts with a certain substring?

开头的示例

答案 1 :(得分:0)

最好的选择是正则表达式。获取名为RegexBuddy的应用。它将帮助您根据需要编写正则表达式

试试此代码

Dim input As String= "Your initial page source that you want to search through"
Dim pattern As String = "http\:\/\/[.]*\.mp4"

Dim rgx As New Regex(pattern, RegexOptions.IgnoreCase)
Dim matches As MatchCollection = rgx.Matches(input)
If matches.Count > 0 Then
   For Each match As Match In matches
      DownloadVideo(match.Value)
   Next   
End If