2009-09-16 5 views
4

내가 프로그래밍 방식으로 전체 웹 페이지를 저장할 수있는 C# 코드 (나는 C#을 Visual Studio 2008 Express을 사용하고 있습니다)의 exmample을 찾기 위해 애 쓰고 있었어요 (URL을 주어) (이미지/형식) (예를 들어, CSS). 그 의도는 후속 단계에서 이것을 꺼내서 (아직 확실하지 않음) 나중에 브라우저를 통해 볼 수 있다는 것입니다. 전체 웹 페이지를 저장하기위한 C# 코드? 이미지 및 서식을 포함

는 전체 웹 페이지를 저장합니다 (.NET 프레임 워크의 방법을 활용) 가장 간단한 방법의 예를 들어 있나요? 이미지 용 하위 디렉토리가있는 페이지로 저장하거나 그렇지 않은 경우. 기본적으로 "전체 웹 페이지 저장"이라고 말하면 브라우저에서 얻는 것과 동일합니다. 코드 프로젝트에서

+0

HTML이나 다른 것을 원하십니까? –

+0

저라면, Internet Explorer 나 Firefox를 자동화하여 "다른 이름으로 저장"하는 방법을 알아 내려고했습니다. –

+0

@ 로버트, 왜 단순히 "wget ​​URL"을 실행하지 않습니까? http://gnuwin32.sourceforge.net/packages/wget.htm –

답변

1
+0

고마워요. - 이것 좀 보도록하겠습니다. 처음에는 코드 페이지가있는 것 같습니다! :) 나는 주어진 웹 페이지 (ie HTML & 그 다음 이미지, CSS 등을 위해 다시 간다)를 위해 everthing을 부여 잡는 존재하는. NET 라이브러리가 없다고 생각한다? – Greg

6

가장 간단한 방법은 응용 프로그램에 WebBrowser Control를 추가하고 Navigate() 방법을 사용하여 저장하고자하는 페이지에 그것을 가리 키도록 아마. 문서가로드되면

그런 다음 ShowSaveAsDialog method를 호출합니다. 그런 다음 사용자는 페이지를 단일 파일로 저장하거나 이미지가있는 파일을 하위 디렉토리에 저장할 수 있습니다. 이 사용자의 참여 또는 입력하여 SendKeys 매크로 또는 유사한를 전송하려면 Windows API로 탐구 중 하나를 필요로

[업데이트]

이제 귀하의 질문에 "프로그래밍 방식"발견하는 데, 위의 접근 방식은 적합하지 않습니다.

내장 당신이 무엇을 물어 모두를 수행하는 .NET 프레임 워크에 아무것도 없다.

  • 사용 System.NET.HttpWebRequest 문자열 또는 스트림 (쉬운)와 같은 주요 HTML 문서를 얻을 :

    그래서 내 접근 것 수정. 이제 쉽게 모든 이미지 요소, 스타일 시트 링크의 목록을 얻을 수있는 문서를 조회 할 수있는 HTMLAgilityPack 문서에

  • 하중이 등
  • 그런 다음이 파일 각각에 대해 별도의 웹 요청을하고 하위 디렉토리에 저장 .
  • 마지막으로 기본 페이지의 모든 관련 링크를 업데이트하여 하위 디렉토리의 항목을 가리 킵니다. 사실상

당신은 매우 간단한 웹 브라우저를 구현하는 것입니다. 자바 스크립트를 사용하여 페이지 콘텐츠를 동적으로 변경하거나 요청하는 페이지에서는 문제가 발생할 수 있지만 대부분의 페이지에서는 허용되는 결과를 제공해야합니다.

+0

거의 다 ...이제 SendKeys를 수행하여 파일 이름을 채우고 확인 버튼을 눌러야합니다. 왝. –

+0

+1이 방법을 사용합니다. 살펴보고 싶은 한 가지는 MHTML (Mime HTML) 문서로 저장할지 여부입니다. 추가 작업은 있지만 하위 디렉토리는 필요 없습니다. – Rohit

+0

"HTMLAgilityPack"에 대한 포인터를 보내 주셔서 감사합니다. 그것은 매우 많이 사용되는 라이브러리 인 것 같습니다. 이것은 .net 개발자를 위해 HTML을 사용하는 데있어 기본적인 표준과 같습니다. – Greg

0

확실히 우아하지는 않지만 System.Windows.Forms.WebBrowser을 URL로 탐색 한 다음 ShowSaveAsDiagog() 메서드를 호출하여 페이지를 저장할 수 있습니다.

+1

@Yoooder, 기존 답변과 동일한 답변을 게시하기 전에 다른 답변을 읽어보십시오! – Ash

+3

나는 그랬다. 나는 작품을 가지고 있었고 MSDN의 메서드 이름을 두 번 확인했는데 게시 한 후에야 볼 수있었습니다. – STW

관련 문제