C #을 사용하여 .mp4 비디오의 직접 URL을 얻으려면 어떻게해야합니까?

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

문제

mp4engine에서 링크를 추출 할 수있는 일종의 algorythm이 필요합니다.

다음은 스크랩하려는 페이지의 예입니다.

이 경우 바람직한 출력은 다음과 같습니다. http://mp4engine.com:182/d/a2chmyndcqqgkpskitclvbgu5pgwxve2vmlrdsctpwbte2flb4i4hrz6/.hack_Roots (Dub) Episode 001-360p.mp4

HtmlAgilityPack 을 사용하여 플레이어 코드를 가져 HtmlAgilityPack 했지만 p,a,c,k,e,d 이고 C # Windows Phone 8.1 프로젝트에서 실행할 수 없습니다. JS를 실행하기 위해 쥬라기 패키지를 사용하는 것에 대해 생각했지만 WinPhone 8.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 코드 만 사용하므로 데이터를 가져 오기 위해 동적 콘텐츠 (자바 스크립트)를 실행해야합니다.

세 가지 방법이 있습니다.

1 - 귀하의 C # (여기에 예제를 볼 수 있습니다 : http://jsbeautifier.org/ )에서 자바 스크립트에 대한 미화 도구 코드를 구현합니다. 이 경우와 경우에만 당신을 위해, 당신은 그것에 있기 때문에 비디오 URL을 추출 할 수 있지만, 이것은 일반적되지 않습니다.

2 - .net 웹 브라우저를 사용하여 페이지에 연결하고 자바 스크립트 코드를 실행하여 데이터를 스크랩하면이 경우 응용 프로그램은 Windows Form 응용 프로그램이어야합니다.

3 - 헤드리스 브라우저를 사용하여 페이지에 연결하고 데이터를 스크랩하기 위해 자바 스크립트 코드를 실행합니다. 유명한 phatomjs를 사용할 수 있습니다. 여기 예제 : PhantomJS webdriver ExecutePhantomJS를 사용하여 이미지를 필터링하는 C # 예제



Related

아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.