Html 민첩성 팩으로 실제 소스로 자바 스크립트 코드를 얻는 법

c# html-agility-pack javascript parsing xpath

문제

firebug.i와 함께 검사 할 때 코드와 다른 HTML 민첩성 팩을 사용하는 웹 사이트의 소스를 얻고 있습니다. 그러나 많은 일들을 검색했지만 여전히해야 할 일을 명확히하지 못하고 있습니다. 코드를 검사 할 때 코드가 다른 경우와 다릅니다. 나도 그 HTML과 자바 스크립트 코드를 얻는 방법. 심지어 내 브라우저에서 자바 스크립트를 사용할 수없는 경우에도 소스를 따라 자바 스크립트 코드를 얻을 수 없습니다. 나는 사용하고있다.

string url="";
HtmlDocument doc = new HtmlDocument();
                WebClient client = new WebClient();
                html = client.DownloadString(url);
                doc.LoadHtml(html);

JS 코드를 얻기 위해 요청 및 응답 메소드가 필요한지 여부를 알려주려면 소스를 얻으십시오.

수락 된 답변

@alecxe 대답을 확장하려면 Selenium *을 사용하여 실제 브라우저에서와 같이 대상 페이지를로드 한 다음 결과를 HtmlAgilityPack에 전달하여 추가 처리 할 수 ​​있습니다.

using OpenQA.Selenium;

.....

IWebDriver driver = new PhantomJS.PhantomJSDriver();
driver.Navigate().GoToUrl(url);
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(driver.PageSource);

또는 Selenium을 직접 사용하여 쿼리 (XPath 또는 CSS 선택기)를 실행할 수도 있습니다. 예를 들면 다음과 같습니다.

var result = driver.FindElements(By.XPath("your query"));

//print HTML of the returned elements
foreach (var item in result)
{
    Console.WriteLine(item.GetAttribute("outerHTML"));
}

*) Selenium은 먼저 PhantomJS, Firefox 등의 드라이버뿐만 아니라 Surenium을 다운로드해야합니다. Selenium은 NuGet 에서 프로젝트에 쉽게 설치할 수 있습니다.


인기 답변

이를 위해서는 실제 브라우저가 필요합니다. selenium 하여 브라우저 (헤드리스 일 수 있음 - PhantomJS 참조) 자동화하기를 고려하십시오.

참조 :



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