2012-07-17 2 views
0

나는 구문 분석하려는 테이블을 포함하는 페이지를 가져 오기 위해 페이지에 HttpWebRequest를 만들었지 만 문제는 테이블에 액세스하기 전에 실행해야하는 JavaScript가 있다는 것입니다. . 그래서 지금 WebBrowser 컨트롤을 가지고 웹 브라우저에서 페이지를로드하고 HTML 컨텐트를 파싱하도록하고 싶습니다! 내가 어떻게 할 수 있니?WebBrowser 컨트롤의 내용 읽기

또한 WebBrowser 컨트롤에서 페이지를로드 할 때 일부 자바 스크립트 오류가 발생하고 모든 오류를 전달하면 전체 페이지가로드됩니다. 오류를 무시할 수 있습니까?

답변

0

당신은 참으로 ScriptErrorsSuppressed을 설정할 수 있습니다 감사합니다. WebBrowser 컨트롤이 표시하는 모든 대화 상자를 표시하지 않습니다. 오류를 선택적으로 무시하려면 문서의 Window.Error 이벤트를 구독해야합니다. 자세한 내용을 확인하려면 MSDN page

또는 Html Agility Pack을 사용할 수 있습니다. 이 경우 WebBrowser 컨트롤을 전혀 사용할 필요가 없습니다.

예 : 당신이 한 번 봐 가지고 그 당신의 방법으로 가능하다면 말해 줄 수,

HtmlDocument htmlDocument = null; 
    HtmlWeb htmlWeb = new HtmlWeb(); 
    htmlWeb.PreHandleDocument = new HtmlWeb.PreHandleDocumentHandler((document) => htmlDocument = document); 
    htmlWeb.Load(url, "GET"); 

    foreach (HtmlNode item in htmlDocument.DocumentNode) 
    { 
     // find your table node 
    } 
+0

이봐, 당신은,이 시도하지 않은 감사하지만,이 게시물에 나는 내가 한 일을 보여 주었다 ? http://stackoverflow.com/questions/11491170/unexpected-behaviour-while-using-httpwebrequest-on-a-form-to-obtain-a-table-for –

+0

문제는 일부 자바 스크립트가 테이블로드를 방해하는 것입니다. 나는 httpwebrequest를한다. –

관련 문제