Как получить прямой URL-адрес видео .mp4 с помощью C #?

c# html-agility-pack video web-scraping windows-phone

Вопрос

Мне нужен какой-то алгоритм, который будет извлекать ссылку из mp4engine.

Вот пример страницы, которую я хочу отменить.

Желательным результатом в этом случае будет: http://mp4engine.com:182/d/a2chmyndcqqgkpskitclvbgu5pgwxve2vmlrdsctpwbte2flb4i4hrz6/.hack_Roots (Dub) Эпизод 001-360p.mp4

Я попытался использовать HtmlAgilityPack чтобы получить код игрока, но это p,a,c,k,e,d , и я не могу выполнить его в моем проекте C # Windows Phone 8.1. Я думал об использовании пакета Jurassic для выполнения JS, но он, похоже, не работает с WinPhone8.1

Вот сценарий, который я использую HAP:

<script type='text/javascript'>eval(function(p,a,c,k,e,d){while(c--    )if(k[c])p=p.replace(new RegExp('\\b'+c.toString(a)+'\\b','g'),k[c]);return p} ('15("14").13({f:"0://2.1:e/d/c/.b (a) 9 8- 7.6",12:"0://2.1/4/h.g",11:"0://2.1/i/10/z.y",x:"w",v:u,t:s,5:"0",r:"0://2.1/4/q /p",o:[{3:"n",m:"0://2.1/4/h.g"},{3:"l",k:{f:\'0://2.1:e/d/c/.b (a) 9 8- 7.6\',\'5\':\'0\'}},{3:"j"}],});',36,42,'http|com|mp4engine|type|player|provider|mp4|360p|001|Episode|Dub|hack_Roots|a2chmyndcqqgkpskitclvbgu5pgwxve2vmlrdsctpwbte2flb4i4hrz6||182|file|swf|jw6||download|config|html5|src|flash|modes|six|skins|skin|420|height|722|width|1484|duration|jpg|hahgl235zwv2|00000|image|flashplayer|setup|flvplayer|jwplayer'.split('|')))

Я также попытался использовать встроенный элемент управления WebView:

WebView wv = new WebView();
//... navigation to string and all that
var res = await wv.InvokeScriptAsync("eval", null);

К сожалению, функция возвращает пустую строку ( res = "" )

Я также искал строку base64 которую я мог бы расшифровать, но страница, похоже, не имеет ее.

Что я могу сделать, чтобы получить URL-адрес видео?

Популярные ответы

HtmlAgilityPack принимает только статический код HTML, вам нужно выполнить динамический контент (javascript), чтобы взять данные.

У вас есть три способа:

1 - Внесите код-украшатель для javascript в ваш c # (здесь вы можете увидеть пример: http://jsbeautifier.org/ ). В этом случае и только для вас случай, вы можете извлечь видео-url, потому что на нем, но это не распространено.

2 - Используя веб-браузер .net, чтобы подключиться к странице и выполнить код javascript, чтобы очистить данные, в этом случае приложение должно быть приложением Windows Form.

3 - Использование браузера без браузера для подключения к странице и выполнения кода javascript для очистки данных. Вы можете использовать знаменитые фатомы. Пример здесь: пример C # с использованием веб-редактора PhantomJS ExecutePhantomJS для фильтрации изображений



Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему