J'ai besoin d'une sorte d'algorithme qui permettrait d'extraire le lien de mp4engine.
Voici l'exemple d'une page que je veux supprimer.
La sortie souhaitée dans ce cas serait: http://mp4engine.com:182/d/a2chmyndcqqgkpskitclvbgu5pgwxve2vmlrdsctpwbte2flb4i4hrz6/.hack_Roots (Dub) Episode 001-360p.mp4
J'ai essayé d'utiliser HtmlAgilityPack
pour obtenir le code du lecteur, mais c'est p,a,c,k,e,d
et je ne parviens pas à l'exécuter dans mon projet C # Windows Phone 8.1. J'ai pensé à utiliser le paquet Jurassic pour exécuter le JS, mais cela ne semble pas fonctionner avec WinPhone8.1
Voici le script que je reçois en utilisant 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('|')))
J'ai également essayé d'utiliser le contrôle WebView intégré:
WebView wv = new WebView();
//... navigation to string and all that
var res = await wv.InvokeScriptAsync("eval", null);
Malheureusement, la fonction retourne une chaîne vide ( res = ""
)
J'ai également recherché une chaîne base64
que je pouvais décoder, mais la page ne semble pas en avoir une.
Que puis-je faire pour obtenir l'URL de la vidéo?
HtmlAgilityPack ne prend que le code HTML statique, vous devez exécuter le contenu dynamique (javascript) pour prendre les données.
Vous avez trois façons:
1 - Implémentez un code de beautifiant pour javascript dans votre c # (ici vous pouvez voir un exemple: http://jsbeautifier.org/ ). Dans ce cas et uniquement pour vous, vous pouvez extraire l'URL de la vidéo car il s'y trouve, mais cela n'est pas courant.
2 - En utilisant le navigateur Web .net pour vous connecter à la page et exécuter le code javascript pour extraire les données, dans ce cas votre application doit être une application Windows Form.
3 - Utiliser un navigateur sans navigateur pour se connecter à la page et exécuter le code javascript pour récupérer les données. Vous pouvez utiliser les célèbres phatomjs. Exemple ici: exemple en C # d'utilisation de PhantomJS webdriver ExecutePhantomJS pour filtrer les images