vb.net Получить значение из веб-браузера в текстовое поле

Я пытаюсь написать код для загрузки фильма с какого-то веб-сайта, и я застрял, пытаясь получить это значение в текстовое поле, однако остальная часть этого кода уже сделана, поэтому я думаю, что других проблем не будет. Итак, это код с веб-сайта:`

        <div style="width:750px;z-index: 0;background:#000;color:#FFF;text-align:center">
                <div class="embed">
                            <div style="height:429px;width:750px;z-index:0;position:relative;clear:both">
                <span id="206019b3744f78869b9bd120161c7b25"><object width="100%" height="100%" id="206019b3744f78869b9bd120161c7b25_api" name="206019b3744f78869b9bd120161c7b25_api" data="http://premium.iitv.info/static/player/flowplayer.commercial-3.2.15.swf" type="application/x-shockwave-flash"><param name="allowfullscreen" value="true"><param name="allowscriptaccess" value="always"><param name="quality" value="high"><param name="bgcolor" value="#000000"><param name="flashvars" value="config={&quot;key&quot;:&quot;#$3f90d28e7547ada6c98&quot;,&quot;clip&quot;:{&quot;url&quot;:&quot;http://stream.streamo.tv/?scode=w0GCOWxpkyGA4MJoRu2ETWHHZI3ZEIHojZHZPERJI9PIO90YyE0XMEQF3qUBQA1nkERocWaLaWxEipGn4cHGuuRIH9FnaM3p3fzZHq0oxyHBOERo5AGJvSKoUuHok80X4IwoIq3FhuJBe1RI5AJp30zE4MKpYS0DRAGoKczo5VmIPkTMSIzovWRpvOmE1pwM3gTo65JrlDILSyzFGMHIGWyG1c2G3pzJcEKIX9TJ0NQrSWGp1jxF4IUqeg2nepaqL5RG2cRr55zAaIKIYIKIEWwpCWJHnqmLzA1Z19RqeZmZJcUMeymoeDJGQg2pvkJq3NaZ1x2LzqyIVWyH5f2pLgTMCyIHMW1XcSzDREIGlqyDd50LIyIpbyHL1HyIUImEwuTrGAxnbuxD192Y61HLnSyHL9HBxyUokkHJj92LUSyEFMxAi1xnP1TqGWRrnSUB0N3H1W2ZTATGZyJBcWTrvIxq2LKnf9TnjSJnjtKoUy1E6WaoiZTIT52HjWSZh9RFxMJJaAmEcSKF&quot;,&quot;provider&quot;:&quot;lighttpd&quot;,&quot;scaling&quot;:&quot;fit&quot;,&quot;backgroundGradient&quot;:&quot;none&quot;,&quot;autoPlay&quot;:false,&quot;autoBuffering&quot;:false},&quot;canvas&quot;:{&quot;backgroundColor&quot;:&quot;#000&quot;,&quot;backgroundGradient&quot;:&quot;none&quot;},&quot;plugins&quot;:{&quot;lighttpd&quot;:{&quot;url&quot;:&quot;flowplayer.pseudostreaming-3.2.11.swf&quot;,&quot;queryString&quot;:&quot;%3Fstart%3D%24%7Bstart%7D&quot;},&quot;controls&quot;:{&quot;url&quot;:&quot;flowplayer.controls-3.2.14.swf&quot;,&quot;autoHide&quot;:&quot;always&quot;}},&quot;playerId&quot;:&quot;206019b3744f78869b9bd120161c7b25&quot;,&quot;playlist&quot;:[{&quot;url&quot;:&quot;http://stream.streamo.tv/?scode=w0GCOWxpkyGA4MJoRu2ETWHHZI3ZEIHojZHZPERJI9PIO90YyE0XMEQF3qUBQA1nkERocWaLaWxEipGn4cHGuuRIH9FnaM3p3fzZHq0oxyHBOERo5AGJvSKoUuHok80X4IwoIq3FhuJBe1RI5AJp30zE4MKpYS0DRAGoKczo5VmIPkTMSIzovWRpvOmE1pwM3gTo65JrlDILSyzFGMHIGWyG1c2G3pzJcEKIX9TJ0NQrSWGp1jxF4IUqeg2nepaqL5RG2cRr55zAaIKIYIKIEWwpCWJHnqmLzA1Z19RqeZmZJcUMeymoeDJGQg2pvkJq3NaZ1x2LzqyIVWyH5f2pLgTMCyIHMW1XcSzDREIGlqyDd50LIyIpbyHL1HyIUImEwuTrGAxnbuxD192Y61HLnSyHL9HBxyUokkHJj92LUSyEFMxAi1xnP1TqGWRrnSUB0N3H1W2ZTATGZyJBcWTrvIxq2LKnf9TnjSJnjtKoUy1E6WaoiZTIT52HjWSZh9RFxMJJaAmEcSKF&quot;,&quot;provider&quot;:&quot;lighttpd&quot;,&quot;scaling&quot;:&quot;fit&quot;,&quot;backgroundGradient&quot;:&quot;none&quot;,&quot;autoPlay&quot;:false,&quot;autoBuffering&quot;:false}]}"></object></span>`

and I would like to get this:

<param name="flashvars" value="config={&quot;key&quot;:&quot;#$3f90d28e7547ada6c98&quot;,&quot;clip&quot;:{&quot;url&quot;:&quot;http://stream.streamo.tv/?scode=w0GCOWxpkyGA4MJoRu2ETWHHZI3ZEIHojZHZPERJI9PIO90YyE0XMEQF3qUBQA1nkERocWaLaWxEipGn4cHGuuRIH9FnaM3p3fzZHq0oxyHBOERo5AGJvSKoUuHok80X4IwoIq3FhuJBe1RI5AJp30zE4MKpYS0DRAGoKczo5VmIPkTMSIzovWRpvOmE1pwM3gTo65JrlDILSyzFGMHIGWyG1c2G3pzJcEKIX9TJ0NQrSWGp1jxF4IUqeg2nepaqL5RG2cRr55zAaIKIYIKIEWwpCWJHnqmLzA1Z19RqeZmZJcUMeymoeDJGQg2pvkJq3NaZ1x2LzqyIVWyH5f2pLgTMCyIHMW1XcSzDREIGlqyDd50LIyIpbyHL1HyIUImEwuTrGAxnbuxD192Y61HLnSyHL9HBxyUokkHJj92LUSyEFMxAi1xnP1TqGWRrnSUB0N3H1W2ZTATGZyJBcWTrvIxq2LKnf9TnjSJnjtKoUy1E6WaoiZTIT52HjWSZh9RFxMJJaAmEcSKF&quot;,&quot;provider&quot;:&quot;lighttpd&quot;,&quot;scaling&quot;:&quot;fit&quot;,&quot;backgroundGradient&quot;:&quot;none&quot;,&quot;autoPlay&quot;:false,&quot;autoBuffering&quot;:false},&quot;canvas&quot;:{&quot;backgroundColor&quot;:&quot;#000&quot;,&quot;backgroundGradient&quot;:&quot;none&quot;},&quot;plugins&quot;:{&quot;lighttpd&quot;:{&quot;url&quot;:&quot;flowplayer.pseudostreaming-3.2.11.swf&quot;,&quot;queryString&quot;:&quot;%3Fstart%3D%24%7Bstart%7D&quot;},&quot;controls&quot;:{&quot;url&quot;:&quot;flowplayer.controls-3.2.14.swf&quot;,&quot;autoHide&quot;:&quot;always&quot;}},&quot;playerId&quot;:&quot;206019b3744f78869b9bd120161c7b25&quot;,&quot;playlist&quot;:[{&quot;url&quot;:&quot;http://stream.streamo.tv/?scode=w0GCOWxpkyGA4MJoRu2ETWHHZI3ZEIHojZHZPERJI9PIO90YyE0XMEQF3qUBQA1nkERocWaLaWxEipGn4cHGuuRIH9FnaM3p3fzZHq0oxyHBOERo5AGJvSKoUuHok80X4IwoIq3FhuJBe1RI5AJp30zE4MKpYS0DRAGoKczo5VmIPkTMSIzovWRpvOmE1pwM3gTo65JrlDILSyzFGMHIGWyG1c2G3pzJcEKIX9TJ0NQrSWGp1jxF4IUqeg2nepaqL5RG2cRr55zAaIKIYIKIEWwpCWJHnqmLzA1Z19RqeZmZJcUMeymoeDJGQg2pvkJq3NaZ1x2LzqyIVWyH5f2pLgTMCyIHMW1XcSzDREIGlqyDd50LIyIpbyHL1HyIUImEwuTrGAxnbuxD192Y61HLnSyHL9HBxyUokkHJj92LUSyEFMxAi1xnP1TqGWRrnSUB0N3H1W2ZTATGZyJBcWTrvIxq2LKnf9TnjSJnjtKoUy1E6WaoiZTIT52HjWSZh9RFxMJJaAmEcSKF&quot;,&quot;provider&quot;:&quot;lighttpd&quot;,&quot;scaling&quot;:&quot;fit&quot;,&quot;backgroundGradient&quot;:&quot;none&quot;,&quot;autoPlay&quot;:false,&quot;autoBuffering&quot;:false}]}">

или это может быть полная 4 строки, если это необходимо.

Я искал решение в течение последних 5 часов, и я не могу найти ничего полезного...


person 10anat10    schedule 24.04.2015    source источник


Ответы (3)


Быстрый и грязный способ сделать это:

1) Загрузите HTML-содержимое веб-страницы в строку, используя следующий код:

Dim htmlContent As String = New System.Net.WebClient().DownloadString(<Enter URL Here>)

2) ... а затем найдите строку для вашего кода. Один из способов сделать это — сначала определить, в какой позиции в HTML находится строка «http://stream.streamo.tv/?scode=" находится ...

Dim codeLocation As Integer = htmlContent.IndexOf("http://stream.streamo.tv/?scode=")

Затем пройдитесь по каждому последующему символу, строя код символ за символом, пока не дойдете до завершающего символа (например, "&").

Я предполагаю, что этот код появляется на странице только один раз. Если нет, вам нужно будет найти способ циклического просмотра каждого экземпляра (несложно, но здесь не рассматривается).

person ChicagoMike    schedule 24.04.2015

Возможно, это сработает, однако это динамическая часть html-кода, поэтому в источнике страницы нет ссылки, и вы можете найти ее, только если выберете функцию «проверить элемент»...

Я пытался сделать что-то подобное, но не могу найти рабочего решения...:

For Each h As HtmlElement In WebBrowser1.Document.GetElementsByTagName("value")
If Not Object.ReferenceEquals(h.GetAttribute("name"), Nothing) AndAlso h.GetAttribute("name").Equals("flashvars") Then
Tbox1.Text = h.InnerText
Exit For
End If
Next

Если я сделаю это:

(...).SetAttribute("Value", TextBox4.Text)

Затем я могу установить данные здесь:

<param name="flashvars" value="here"></param>

Но я не знаю, как это изменить и получить это в текстовое поле:

?textbox1..AppendText(WebBrowser1.Document.GetAttribute("value")?
person 10anat10    schedule 24.04.2015
comment
Можете ли вы включить ссылку на образец страницы, чтобы мы могли ее посмотреть? - person ChicagoMike; 25.04.2015
comment
Боюсь, что я не могу дать вам ссылку, потому что вам понадобится премиум-аккаунт, однако я могу дать вам этот сайт в html файле здесь: speedy.sh/tYe93/ - person 10anat10; 26.04.2015
comment
Это должно работать: speedy.sh/uEC8F/< /а> - person 10anat10; 28.04.2015
comment
И это как HTML код выглядит до щелчка:
и после щелчка:
- person 10anat10; 29.04.2015
comment
так что, вероятно, пока я сохранял страницу, там также сохранялся код, сгенерированный java - person 10anat10; 29.04.2015
comment
Итак, ваша идея была хороша, за исключением того, что для загрузки этой страницы вы должны войти в сеанс браузера, поэтому необходимо будет загрузить ее с помощью webbrowser1, что подводит меня к отправной точке, потому что я понятия не имею, как сделать это... - person 10anat10; 29.04.2015

ChicagoMike спасибо за идею скачать исходники и поискать их, но раньше проблема заключалась в том, как запустить javascript, но мне удалось решить эту проблему следующим образом:

WebBrowser1.Document.Window.DomWindow.execscript("text/JavaScript")

    Dim MSDNpage2 As String = WebBrowser1.Document.Body.InnerHtml

    My.Computer.FileSystem.WriteAllText("e:\msdn2.txt", MSDNpage2, True)

    RichTextBox6.Text = MSDNpage2
person 10anat10    schedule 03.05.2015