Come ottengo l'URL diretto del video .mp4 usando C #?

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

Domanda

Ho bisogno di una sorta di algoritmo per estrarre il link da mp4engine.

Ecco l'esempio di una pagina che voglio eliminare.

L'output desiderato in questo caso sarebbe: http://mp4engine.com:182/d/a2chmyndcqqgkpskitclvbgu5pgwxve2vmlrdsctpwbte2flb4i4hrz6/.hack_Roots (Dub) Episodio 001-360p.mp4

Ho provato a utilizzare HtmlAgilityPack per ottenere il codice del lettore, ma è p,a,c,k,e,d , e non riesco ad eseguirlo nel mio progetto C # Windows Phone 8.1. Ho pensato di usare il pacchetto Jurassic per eseguire il JS, ma non sembra funzionare con WinPhone8.1

Ecco lo script che ottengo 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('|')))

Ho anche provato ad usare il controllo WebView integrato:

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

Sfortunatamente, la funzione restituisce una stringa vuota ( res = "" )

Ho anche cercato la stringa base64 che ho potuto decodificare, ma la pagina non sembra averne uno.

Cosa posso fare per ottenere l'URL del video?

Risposta popolare

HtmlAgilityPack accetta solo il codice HTML statico, è necessario eseguire il contenuto dinamico (javascript) per prendere i dati.

Hai tre modi:

1 - Implementa un codice di abbellimento per javascript nel tuo c # (qui puoi vedere un esempio: http://jsbeautifier.org/ ). In questo caso e solo per te, puoi estrarre l'url del video perché è su di esso, ma questo non è comune.

2 - Utilizzando il browser Web .net per connettersi alla pagina ed eseguire il codice javascript per raschiare i dati, in questo caso l'applicazione deve essere un'applicazione Windows Form.

3 - Utilizzo di un browser headless per connettersi alla pagina ed eseguire il codice javascript per raschiare i dati. Potresti usare i famosi phatomjs. Esempio: C # esempio di utilizzo del webdriver PhantomJS ExecutePhantomJS per filtrare le immagini



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché