2011-05-16 3 views
1

내가 웹 페이지의 html 소스 코드를 추출하기 위해이 코드를 사용 :이 페이지의 소스 코드를 추출하기 위해이 코드를 사용 후추출 HTML 소스

private static string GetWebText(string url) 
    { 
     HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url); 
     request.UserAgent = "A .NET Web Crawler"; 

     WebResponse response = request.GetResponse(); 

     Stream stream = response.GetResponseStream(); 

     StreamReader reader = new StreamReader(stream); 
     string htmlText = reader.ReadToEnd(); 
     return htmlText; 
    } 

을 (==> 추출하는 HREF) : 는 "비용 최적화 고문"

은 다음과 같습니다

난 내 HTML 소스 코드를 가지고

http://www.bayt.com/en/qatar/jobs/

, 나는 같은 콘텐츠를 많이 찾을 수 없습니다 그것은 서버 측에서 콘텐츠를 생성했기 때문입니까?

서버 측에서 생성 된 콘텐츠가 포함 된 HTML 소스 코드가 포함되도록 코드를 어떻게 변경합니까?

+1

에 사용자 에이전트를 설정하려고? 그들과 법적 계약을 맺고 있는지 확인하십시오. 가지고있는 경우, XML과 같은보다 간단한 형식으로 내용을 내보낼 것을 요청할 수 있습니다. AJAX를 사용하여 내용을 비동기 적으로로드하는 경우 문제가 될 수 있습니다. – BerggreenDK

+0

BerggreenDK 감사합니다. "소스 코드 표시"를 수행하면 모든 컨텐츠를 얻을 수 있습니까? –

+1

DOM 버전을 파싱하지 못하셨습니까? 모든 스크립트가 실행 된 후에 컴파일 된 것을 포함하는 것입니다. – BerggreenDK

답변

0

원본을 볼 때 서버 쪽의 원인이 아닐 수 있습니다. 서버 쪽이 이미 완성되어 렌더링되어 있습니다. 로드가 완료된 후 페이지의 내용을 동적으로 변경하는 스크립트가있을 수 있습니다. 스크립트가로드 후 변경되면 원본이 원본이 아닌 한 모두 원래 렌더링 된대로 렌더링됩니다. 그 후에 뭐든지. 일부 브라우저는 렌더링 및 조작을 따라 잡을 수있는 능력을 갖추고 있지만 브라우저에서 자바 스크립트와 관련이 없도록 만드는 응용 프로그램에서 많이 발생합니다.

또 다른 그럴듯한 개념 또는 2입니다. 그들은 어떤 종류의 XSS 탐지를 위해 사이트 어딘가에 무언가를 내장하고 있습니다. 참조 스크립트가 도메인 자체에 있지 않으면 원하는 스크립트를 참조하십시오. 또는 ... 귀하의 스크립트가 어떻게 그것을 망칠 수있는 "동일한 출처 정책"으로 고통 받고 있습니다. 또는 누군가 다른 사람이 DOM을 파싱하지 않는다고 말한 것처럼 말입니다.

귀하의 사이트에있는 iframe에서 페이지를로드 한 다음 iframe의 innerHTML을 가져 와서 파일 또는 다른 것으로 덤핑 해보십시오.

0

브라우저 ID (사용자 에이전트) 문자열을 기반으로 특정 콘텐츠에 추가 될 수 있습니다.

은 다른 웹 사이트에 자신의 데이터를 긁어하려고하는이

Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1 
관련 문제