[php] 웹 사이트 스크린 샷

PHP로 웹 사이트의 스크린 샷을 만든 다음 파일로 저장하는 방법이 있습니까?



답변

마지막 편집 : 7 년 후에도 여전히이 답변에 대한 찬성 투표를하고 있지만이 답변 훨씬 정확하다고 생각 합니다.


물론 가능하지만 페이지를 무언가로 렌더링해야합니다. 실제로 PHP 만 사용 하려면 페이지를 렌더링하고 ps 파일 (ghostscript)로 출력 한 HTMLTOPS를 제안 하고 .jpg, .png, .pdf ..로 변환하면 조금 느려질 수 있습니다 복잡한 페이지 (모든 CSS를 지원하지는 않음)

그렇지 않으면 wkhtmltopdf 를 사용 하여 pdf, jpg 등으로 html 페이지를 출력 할 수 있습니다. CSS2.0 을 수락하고 웹킷 (safari의 래퍼)을 사용하여 페이지를 렌더링하십시오. 서버에도 설치해야합니다.

업데이트 이제 새로운 HTML5 및 JS 기능을 통해 JavaScript를 사용하여 페이지를 캔버스 객체로 렌더링 할 수도 있습니다. 여기에 좋은 라이브러리가 있습니다 : Html2Canvas 그리고 여기는 같은 저자가 G +와 같은 피드백을 얻는 구현 입니다. dom을 캔버스에 렌더링 한 후에는 ajax를 통해 서버로 전송하여 jpg로 저장할 수 있습니다.

편집 : pdf를 png로 변환하기 위해 imagemagick 도구를 사용할 수 있습니다. 내 wkhtmltopdf 버전은 이미지를 지원하지 않습니다. 예 convert html.pdf -append html.png.

편집 : 이 작은 쉘 스크립트 는 php5-cli 및 위에서 언급 한 도구를 사용하여 Linux에서 간단하지만 작동하는 사용법 예제를 제공합니다.

편집 : 나는 wkhtmltopdf 팀이 다른 프로젝트를 진행하고 있음을 알았습니다 : wkhtmltoimage, jpg를 직접 제공합니다.


답변

PHP 5.2.2부터 PHP 만으로 웹 사이트를 캡처 할 수 있습니다 !

imagegrabscreen — 전체 화면을 캡처합니다

<?php
$img = imagegrabscreen();
imagepng($img, 'screenshot.png');
?>

imagegrabwindow -Windows 핸들 (COM 인스턴스의 HWND 속성)을 사용하여 창 또는 클라이언트 영역을 가져옵니다.

<?php
$Browser = new COM('InternetExplorer.Application');
$Browserhandle = $Browser->HWND;
$Browser->Visible = true;
$Browser->Fullscreen = true;
$Browser->Navigate('http://www.stackoverflow.com');

while($Browser->Busy){
  com_message_pump(4000);
}

$img = imagegrabwindow($Browserhandle, 0);
$Browser->Quit();
imagepng($img, 'screenshot.png');
?>

편집 : 참고,이 기능은 Windows 시스템에서만 사용할 수 있습니다!


답변

타사 도구를 사용하고 싶지 않다면 Google Page Insight API를 사용하는 간단한 솔루션을 발견했습니다 .

그냥 params가있는 api라고 불러야합니다 screenshot=true.

https://www.googleapis.com/pagespeedonline/v1/runPagespeed?
url=https://stackoverflow.com/&key={your_api_key}&screenshot=true

&strategy=mobile매개 변수로 모바일 사이트보기 패스의 경우

https://www.googleapis.com/pagespeedonline/v1/runPagespeed?
url=http://stackoverflow.com/&key={your_api_key}&screenshot=true&strategy=mobile

데모 .


답변

PhantomJS와 같은 간단한 헤드리스 브라우저를 사용하여 페이지를 가져올 수 있습니다.

또한 PhantomJS를 PHP와 함께 사용할 수 있습니다.

이 작은 PHP 스크립트를 확인하십시오. 여기 좀보세요 https://github.com/microweber/screen을

그리고 여기 API- http://screen.microweber.com/shot.php?url=/programming/757675/website-screenshots-using-php


답변

이것은 당신에게 좋을 것입니다 :

https://wkhtmltopdf.org/

wkhtmltoimage 배포판을 다운로드하십시오!


답변

예. tho가 필요합니다.

* nx의 khtmld (aemon) 를 참조하십시오 . Windows 용 Url2Jpg 를 참조하십시오. 그러나 dotNet 앱 이므로 Url2Bmp 도 확인해야합니다.

둘 다 웹 앱에서 스크린 샷을 얻을 수있는 콘솔 도구입니다.

이를 제공하는 웹 서비스도 있습니다. 예를 들어 이것을 확인하십시오 .

편집하다:

링크 는 유용합니다.


답변

파이썬으로되어 있지만 설명서와 코드를 살펴보면 이것이 어떻게 수행되는지 정확히 알 수 있습니다. 파이썬을 실행할 수 있다면 기성품 솔루션입니다.

http://browsershots.org/

하나의 플랫폼에 대해 하나의 시스템 또는 다른 플랫폼을 실행하는 가상 시스템이있는 하나의 시스템에서 모든 것을 실행할 수 있습니다.

문서, 소스 코드 및 기타 정보에 대한 링크를 보려면 무료 오픈 소스 페이지 하단으로 스크롤하십시오.