¿Cómo obtengo la URL directa del video .mp4 usando C #?

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

Pregunta

Necesito algún tipo de algoritmo que extraiga el enlace de mp4engine.

Aquí está el ejemplo de una página que quiero desechar.

La salida deseada en este caso sería: http://mp4engine.com:182/d/a2chmyndcqqgkpskitclvbgu5pgwxve2vmlrdsctpwbte2flb4i4hrz6/.hack_Roots (Dub) Episode 001-360p.mp4

Intenté usar HtmlAgilityPack para obtener el código del reproductor, pero es p,a,c,k,e,d , y no puedo ejecutarlo dentro de mi proyecto C # Windows Phone 8.1. Pensé en usar el paquete Jurásico para ejecutar el JS, pero parece que no funciona con WinPhone8.1

Aquí está el script que obtengo usando 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('|')))

También he intentado usar el Control de vista web incorporado:

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

Desafortunadamente, la función devuelve una cadena vacía ( res = "" )

También busqué una cadena base64 que pudiera decodificar, pero la página no parece tener una.

¿Qué puedo hacer para obtener la URL del video?

Respuesta popular

HtmlAgilityPack solo toma el código HTML estático, necesita ejecutar el contenido dinámico (javascript) para tomar los datos.

Tienes tres formas:

1: implemente un código de beautifier para javascript en su c # (aquí puede ver un ejemplo: http://jsbeautifier.org/ ). En este caso y solo para usted, puede extraer la URL del video porque está en él, pero esto no es común.

2 - Usando el navegador web .net para conectarse a la página y ejecutar el código javascript para raspar los datos, en este caso, su aplicación debe ser una aplicación de Windows Form.

3 - Usar un navegador sin cabeza para conectarse a la página y ejecutar el código javascript para raspar los datos. Podrías usar los famosos phatomjs. Ejemplo aquí: Ejemplo de C # del uso de PhantomJS webdriver ExecutePhantomJS para filtrar imágenes



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué