2014-09-18 5 views
2

프로그래밍 방식으로 사이트의 페이지를 구문 분석하고 전체 HTML 코드가 있어야합니다. 그러나 사이트는 직접 URL을 통해 일부 마스터 페이지 만로드 할 수 있으며 마스터 페이지가로드되면 AJAX를 통해 콘텐츠를 수신합니다.완전히로드 된 HTML 페이지의 코드를 얻는 방법

"브라우저와 같은"페이지를로드하여 작업이 완료된 모든 스크립트로 완전히로드되도록하려면 어떻게해야합니까?

예를 들어, WebBrowser 클래스를 사용하여 "브라우저에서와 같이"페이지를 실제로 열면 DocumentText 속성 (DOM 내용을 나타내야 함)은 AJAX를 통해로드 된 실제 내용이없는 초기 페이지 만 반환합니다. google.com). 이는 브라우저에서도 발생하며 실제 HTML을 보려면 개발자 도구를 사용해야합니다. 블라디미르 Shmidt how to dynamically generate HTML code using .NET's WebBrowser or mshtml.HTMLDocument?

에 DocumentText에 대한 답이 여기에 발견 덕분에 "루트"DOM이로드 된 후 그 내용을 업데이트하는 것이 아니라, 문서 속성을 수행합니다

이 업데이트되었습니다.

답변

0

들으셨습니까? http://webkitdotnet.sourceforge.net/에 대해 들어 봤습니까? 또한 .net에는 사용할 수있는 WebBrowser 구성 요소가 있습니다.

+0

, 그것으로 찾아보세요 : 여기에 SO에

는 솔루션입니다. – yaapelsinko

+0

WebBrowser의 DocumentCompleted (WebBrowserDocumentCompletedEventHandler) 이벤트는 모든 사이트가 ajax를 통해로드되는 시점에 충분할 수 있습니까? –

+0

흠, 나는 그것으로 들여다 볼게 ... – yaapelsinko

0

어떻게 "브라우저와 같은"페이지를로드 할 수 있습니까?

이 작업을 수행하는 유일한 방법은 실제로 브라우저에서 페이지를로드하는 것입니다.. Selenium/WebDriver와 같은 도구를 사용하여 자동화 할 수 있습니다.

+0

글쎄, 거기에 브라우저에서 열 WebBrowser 클래스, 그것에 대해 내 질문을 업데이트했습니다. 아직도 "우아한"해결책을 보지 못했습니다 ... – yaapelsinko

0

제목에서 AJAX와 자바 스크립트가 콘텐츠를 검색하거나 생성 한 후에는 완성 된 HTML을 사용자가 원하는 것으로 보입니다. 이 경우 브라우저 디버거 (F12)에이 기능이 있습니다. Chrome에서 '요소'탭을 찾습니다.

+0

예, 정확하게 이것을 파싱하려면 프로그래밍 방식으로로드해야합니다. WebBrowser 인스턴스에서 완성 된 코드를받을 수 있습니까? – yaapelsinko

0

거기에는 몇 가지 해결책이 있습니다.

홈페이지 논리 :

  1. 요청 페이지
  2. 문서 틸 기다립니다
  3. 내가 하나의 단순한 사람을 생각

문서 내용에

  • 가져 오기입니다 (readyState가 = 완료) 완전히로드 url로 이동하여 컨트롤 준비 또는 완료 상태를 기다리는 WebControl을 사용하십시오. 그런 다음 구문 분석을 시작할 수 있습니다. htmlagilitypack and dynamic content issue 예, 그것은, 난 그냥 당신의 코멘트 후 내 질문에 업데이 트했습니다있다

  • 관련 문제