Ảnh chụp màn hình trang web


407

Có cách nào để chụp ảnh màn hình của một trang web trong PHP, sau đó lưu nó vào một tệp không?


2
Nếu bạn thích giải pháp, hãy xem Usersnap - đó là một dịch vụ tốt cung cấp ảnh chụp màn hình trang web chính xác. Bạn chỉ cần thêm một đoạn mã Javascript nhỏ vào trang của mình để làm cho nó hoạt động.
Gregor

1
Người dùng không thể đối phó với các trang web sử dụng Ajax để tạo nội dung như trên trang này . Làm thế nào tôi có thể đạt được điều đó? giả sử: tạo ảnh chụp màn hình 10 giây sau khi tải trang đầu tiên xong
rubo77

1
@ rubo77: Usersnap hỗ trợ các DOM động như vậy, tôi đã thử nó với trang của bạn - ảnh chụp màn hình tái tạo lại tình huống chính xác bao gồm tất cả các vị trí.
Gregor

Câu trả lời:


280

CHỈNH SỬA CUỐI : sau 7 năm tôi vẫn nhận được sự ủng hộ cho câu trả lời này, nhưng tôi đoán câu này bây giờ chính xác hơn nhiều.


Chắc chắn bạn có thể, nhưng bạn sẽ cần kết xuất trang bằng một cái gì đó. Nếu bạn thực sự chỉ muốn sử dụng php, tôi khuyên bạn nên HTMLTOPS , nó kết xuất trang và xuất ra nó trong tệp ps (ghostscript), sau đó, chuyển đổi nó thành .jpg, .png, .pdf .. có thể chậm hơn một chút với các trang phức tạp (và không hỗ trợ tất cả CSS).

Khác, bạn có thể sử dụng wkhtmltopdf để xuất trang html dưới dạng pdf, jpg, bất cứ điều gì .. Chấp nhận CSS2.0, sử dụng bộ webkit (trình bao bọc của safari) để hiển thị trang .. vì vậy sẽ ổn. Bạn cũng phải cài đặt nó trên máy chủ của mình ..

CẬP NHẬT Bây giờ, với tính năng HTML5 và JS mới, cũng có thể hiển thị trang thành một đối tượng canvas bằng JavaScript. Đây là một thư viện đẹp để làm điều đó: Html2Canvasđây là một triển khai của cùng một tác giả để có được phản hồi như G +. Khi bạn đã kết xuất dom vào canvas, sau đó bạn có thể gửi đến máy chủ thông qua ajax và lưu nó dưới dạng jpg.

EDIT : Bạn có thể sử dụng công cụ fantemagick để chuyển đổi pdf sang png. Phiên bản wkhtmltopdf của tôi không hỗ trợ hình ảnh. Ví dụ convert html.pdf -append html.png.

EDIT : Kịch bản shell nhỏ này đưa ra một ví dụ sử dụng đơn giản / nhưng hoạt động trên linux với php5-cli và các công cụ được đề cập ở trên.

EDIT : tôi nhận thấy rằng nhóm wkhtmltopdf đang làm việc trên một dự án khác: wkhtmltoimage, cung cấp cho bạn jpg trực tiếp


11
+1 cho wkhtmltopdf. Tôi đã từng chơi với một số thư viện khác nhưng không ai trong số họ thậm chí còn hỗ trợ mọi thứ ngoài HTML và CSS rất cơ bản. wkhtmltopdf có thể làm mọi thứ mà Safari làm, vì vậy bạn khá an toàn ở đó.
Wim

7
wkhtmltoimage hoạt động tuyệt vời! Cảm ơn vì tiền hỗ trợ. Đầu ra png là tốt.
yuttadhammo

2
Bây giờ bạn đề cập đến wkhtmltopdf KnpLabs có một trình bao bọc cho nó github.com/KnpLabs/snappy
rmontagud

1
@rmontagud việc sử dụng wkhtmltopdf khá dễ dàng, bằng cách này, trình bao bọc OOP luôn tốt!
Strae

1
Đây đều là những giải pháp tuyệt vời vài năm trước, nhưng công nghệ trình duyệt mà tất cả chúng đều dựa trên đã không được cập nhật với thông số mới nhất về thông số HTML5 / CSS. Nếu bạn đang render một trang web mà làm cho sử dụng phông chữ web, svg, vải, flexbox vv sau đó may mắn nhận được một ảnh chụp màn hình chính xác .. Nếu bạn muốn chụp màn hình chính xác kiểm tra của tôi câu trả lời trong đó sử dụng urlbox
cjroebuck

87

Vì PHP 5.2.2 là có thể, để chỉ chụp một trang web với PHP !

imagegrabscreen - Chụp toàn bộ màn hình

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

imagegrabwindow - Lấy một cửa sổ hoặc khu vực khách hàng của nó bằng cách sử dụng tay cầm cửa sổ (thuộc tính HWND trong ví dụ COM)

<?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');
?>

Chỉnh sửa: Lưu ý, các chức năng này chỉ khả dụng trên các hệ thống Windows!


26
Không thực sự hoàn toàn PHP là nó?
Toby Allen

Điều này đang sử dụng trình duyệt Internet explorer để kết xuất nội dung.
keanu numeves

55

Nếu bạn không muốn sử dụng bất kỳ công cụ của bên thứ ba nào, tôi đã tìm đến giải pháp đơn giản đó là sử dụng Google Page Insight api.

Chỉ cần gọi nó là api với params screenshot=true.

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

Đối với lượt xem trang web di động &strategy=mobiletrong params,

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

DEMO .


3
Điều này là khá mát mẻ và dường như cũng hoạt động mà không cung cấp một khóa api. Tuy nhiên, hình ảnh được trả về bị hỏng, bạn cần thay thế tất cả '_' bằng '/' và tất cả '-' bằng '+' và sau đó bạn có thể thêm nó dưới dạng dữ liệu uri
Robert Went

9
Điều này thật tuyệt. Tôi đã mã hóa điều này tại gist.github.com/jaseclamp/d4ac6205db352e822ff6
JaseC

21
Vì vậy, để tham khảo, API trang Insight của Google là một công cụ của bên thứ ba.
Jimbo

1
ảnh chụp màn hình có độ phân giải giới hạn là 320x240, giống như ngón tay cái
Gabriele F.

1
Thực sự tuyệt vời! Nó có một số giới hạn cho việc sử dụng nó?
moreirapontocom

19

Bạn có thể sử dụng trình duyệt không đầu đơn giản như PhantomJS để lấy trang.

Ngoài ra, bạn có thể sử dụng PhantomJS với PHP.

Kiểm tra tập lệnh php nhỏ này làm điều này. Hãy xem tại đây https://github.com/microweber/screen

Và đây là API- http://screen.microweber.com/shot.php?url=/programming/757675/website-scshotsshots-USE-php


PhantomJS nói chung là một giải pháp tuyệt vời cho việc này, mặc dù khi tôi sử dụng nó cho mục đích chính xác này, không phải tất cả các yếu tố giao diện HTML được hiển thị đúng.
ultrageek

2
screen.microweber.com/shot.php?url=https://stackoverflow.com/, bây giờ là 404 và tự hỏi liệu câu trả lời ở đây có nên bị xóa không. Trong cả hai trường hợp, nó nên được cập nhật.
Funk Forty Niner 29/03/18

18

Điều này nên tốt cho bạn:

https://wkhtmltopdf.org/

Hãy chắc chắn rằng bạn tải xuống bản phân phối wkhtmltoimage!


1
BTW, tôi đã cài đặt nó trên Ubuntu 10.04 chỉ bằng cách sử dụng apt-get. Tuy nhiên, khi tôi chạy nó, nó rất, rất chậm và bố cục PDF bị lệch và không thực sự là một lựa chọn khả thi. Tuy nhiên, nó cho thấy lời hứa sẽ sử dụng KHTML theo cách này - cuối cùng - để tạo hình ảnh.
Volomike

@Volomike - Bạn không thể nhận được bất kỳ kết quả nào tốt hơn điều này vì, như bạn biết, một trình duyệt tuân thủ tiêu chuẩn được sử dụng. Về tốc độ, công ty tôi làm việc đã liên tục sử dụng nó trong các dự án linh tinh đòi hỏi các dự án CSS chi tiết (nhưng nhỏ).
Christian

Tôi có thể chứng minh cho hiệu quả của sản phẩm này. Tôi phát triển các ứng dụng biểu đồ cho các khách hàng chính phủ được phân phối qua html / css nhưng phải được lưu trữ dưới dạng pdf. KHÔNG có sản phẩm web-to-pdf nào khác gần như tái tạo hoàn hảo các biểu đồ của chúng tôi như wkhtmltopdf.
Daniel Szabo

@Volomike: phiên bản trong kho thường không phải là phiên bản mới nhất; cài đặt phiên bản ổn định mới nhất từ ​​nguồn đã cố định nhiều quirks của phiên bản cũ hơn cho tôi.
Piskvor rời khỏi tòa nhà

10

Đúng. Bạn sẽ cần một số thứ tho:

Xem khtmld (aemon) trên * nx. Xem Url2Jpg cho Windows nhưng vì đây là ứng dụng dotNet nên bạn cũng nên sử dụng Url2Bmp

Cả hai đều là công cụ điều khiển mà bạn có thể sử dụng từ ứng dụng web của mình để có được ảnh chụp màn hình.

Ngoài ra còn có các dịch vụ web cung cấp nó. Kiểm tra này ra ví dụ.

Biên tập:

Đây link rất hữu ích để.


10

Đó là trong Python, nhưng xem qua tài liệu và mã bạn có thể thấy chính xác cách thực hiện. Nếu bạn có thể chạy python, thì đó là một giải pháp sẵn sàng cho bạn:

http://browsersshots.org/

Lưu ý rằng mọi thứ có thể chạy trên một máy cho một nền tảng hoặc một máy có máy ảo chạy các nền tảng khác.

Miễn phí, mã nguồn mở, cuộn xuống cuối trang để liên kết đến tài liệu, mã nguồn và thông tin khác.


24
Quy tắc 37: Không có quá mức cần thiết. Chỉ có 'nổ súng' và 'thời gian để tải lại'.
Adam Davis

Mã nguồn vẫn kích hoạt trình duyệt máy tính để bàn. Nó không chính xác an toàn chủ đề và có thể dễ bị khóa.
Volomike

@Volomike - Đúng, nhưng nếu bạn cần xem trang đó trông như thế nào khi trình duyệt chạy nó, hầu như không có lựa chọn nào tốt hơn. Công cụ kết xuất HTML chỉ đi xa với các trang nặng javascript ngày nay. Đặt quyền và thời gian thực hiện phù hợp sẽ hạn chế những khó khăn và rủi ro khi chạy chương trình bên ngoài.
Adam Davis


5

Chà, PhantomJS là một trình duyệt có thể dễ dàng đặt trên máy chủ và tích hợp nó vào php. Bạn có thể tìm thấy mã trong WDudes. Chúng đã bao gồm nhiều tính năng hơn như chỉ định kích thước hình ảnh, bộ đệm, tải xuống dưới dạng tệp hoặc hiển thị trong img src, v.v.

<img src=”screenshot.php?url=google.com” />

Tham số URL

  • Chiều rộng và chiều cao: ảnh chụp màn hình.php? Url = google.com & w = 1000 & h = 800

  • Với cắt xén: ảnh chụp màn hình.php? Url = google.com & w = 1000 & h = 800 & clipw = 800 & cliph = 600

  • Vô hiệu hóa bộ đệm và tải screesnhot mới:
    ảnh chụp màn hình.php ? Url = google.com & cache = 0

  • Để tải xuống hình ảnh: ảnh chụp màn hình.php? Url = google.com & download = true

Bạn có thể xem hướng dẫn tại đây: Chụp ảnh chụp màn hình của một trang web bằng PHP mà không cần API


Oh. Xin lỗi vì điều đó. Hình như blog không còn nữa. Hãy thử github.com/graphcool/chromless @NarendraVerma
Gijo Varghese

4

cutycapt lưu các trang web vào hầu hết các định dạng hình ảnh (jpg, png ..) tải xuống từ synap của bạn, nó hoạt động tốt hơn nhiều so với wkhtmltopdf



3

Cuối cùng tôi đã thiết lập bằng microweber / màn hình theo đề xuất của @boksiora.
Ban đầu khi thử liên kết được đề cập ở đây những gì tôi nhận được:

Please download this script from here https://github.com/microweber/screen

Tôi đang dùng Linux. Vì vậy, nếu bạn muốn chạy nó, bạn có thể điều chỉnh bước của tôi theo môi trường của bạn.
Đây là bước tôi đã làm trên shell của mình trên DOCUMENT_ROOTthư mục:

$ sudo wget https://github.com/microweber/screen/archive/master.zip
$ sudo unzip master.zip
$ sudo mv screen-master screen
$ sudo chmod +x screen/bin/phantomjs
$ sudo yum install fontconfig
$ sudo yum install freetype*
$ cd screen
$ sudo curl -sS https://getcomposer.org/installer | php
$ sudo php composer.phar update
$ cd ..
$ sudo chown -R apache screen
$ sudo chgrp -R www screen
$ sudo service httpd restart

Trỏ trình duyệt của bạn tới screen/demo/shot.php?url=google.com. Khi bạn nhìn thấy ảnh chụp màn hình , bạn đã hoàn tất. Thảo luận cho các thiết lập trước có sẵn ở đâyở đây .


3

Có nhiều dự án nguồn mở có thể tạo ảnh chụp màn hình. Ví dụ: PhantomJS, webkit2png, v.v.

Vấn đề lớn với các dự án này là chúng dựa trên công nghệ trình duyệt cũ hơn và có vấn đề khi kết xuất nhiều trang web, đặc biệt là các trang web sử dụng webfont, flexbox, svg và nhiều bổ sung khác cho thông số HTML5 và CSS trong vài tháng qua / năm.

Tôi đã thử một vài dịch vụ của bên thứ ba và hầu hết đều dựa trên PhantomJS, nghĩa là chúng cũng tạo ra các ảnh chụp màn hình kém chất lượng. Dịch vụ bên thứ ba tốt nhất để tạo ảnh chụp màn hình trang web là urlbox.io . Đây là một dịch vụ trả phí, mặc dù có bản dùng thử 7 ngày miễn phí để thử nghiệm mà không cam kết với bất kỳ gói trả phí nào.

Đây là một liên kết đến tài liệu và dưới đây là các bước đơn giản để làm cho nó hoạt động trong PHP với trình soạn thảo.

// 1 . Get the urlbox/screenshots composer package (on command line):
composer require urlbox/screenshots

// 2. Set up the composer package with Urlbox API credentials:
$urlbox = UrlboxRenderer::fromCredentials('API_KEY', 'API_SECRET');

// 3. Set your options (all options such as full page/full height screenshots, retina resolution, viewport dimensions, thumbnail width etc can be set here. See the docs for more.)
$options['url'] = 'example.com';

// 4. Generate the Urlbox url
$urlboxUrl = $urlbox->generateUrl($options);
// $urlboxUrl is now 'https://api.urlbox.io/v1/API_KEY/TOKEN/png?url=example.com'

// 5. Now stick it in an img tag, when the image is loaded in browser, the API call to urlbox will be triggered and a nice PNG screenshot will be generated!
<img src="$urlboxUrl" />

Ví dụ: đây là một ảnh chụp màn hình chiều cao đầy đủ của chính trang này:

https://api.urlbox.io/v1/ca482d7e-9417-4569-90fe-80 2F43652083% 2343652083 & full_page = đúng

ảnh chụp màn hình toàn trang của câu hỏi stackoverflow.com được cung cấp bởi urlbox.io


3

Có rất nhiều lựa chọn và tất cả đều có ưu và nhược điểm của chúng. Dưới đây là danh sách các tùy chọn được sắp xếp theo độ khó thực hiện.

Tùy chọn 1: Sử dụng API (dễ nhất)

Ưu

  • Thực thi Javascript
  • Kết xuất gần hoàn hảo
  • Nhanh khi các tùy chọn bộ nhớ đệm được sử dụng chính xác
  • Tỷ lệ được xử lý bởi các API
  • Thời gian chính xác, chế độ xem, ...
  • Hầu hết thời gian họ cung cấp một gói miễn phí

Nhược điểm

  • Không miễn phí nếu bạn có kế hoạch sử dụng chúng nhiều

Tùy chọn 2: Sử dụng một trong nhiều thư viện có sẵn

Ưu

  • Chuyển đổi khá nhanh hầu hết thời gian

Nhược điểm

  • Kết xuất xấu
  • Không thực thi javascript
  • Không hỗ trợ cho các tính năng web gần đây (FlexBox, Bộ chọn nâng cao, Webfont, Định cỡ hộp, Truy vấn phương tiện, thẻ HTML5 ...)
  • Đôi khi không dễ cài đặt
  • Biến chứng

Tùy chọn 3: Sử dụng PhantomJs và có thể là thư viện trình bao bọc

Ưu

  • Thực thi Javascript
  • Khá nhanh

Nhược điểm

  • Kết xuất xấu
  • PhantomJ đã bị phản đối và không được duy trì nữa.
  • Không hỗ trợ cho các tính năng web gần đây (FlexBox, Bộ chọn nâng cao, Webfont, Định cỡ hộp, Truy vấn phương tiện, thẻ HTML5 ...)
  • Biến chứng
  • Không dễ để làm cho nó hoạt động nếu có hình ảnh được tải ...

Tùy chọn 4: Sử dụng Chrome Headless và có thể là thư viện trình bao bọc

Ưu

  • Thực thi Javascript
  • Kết xuất gần hoàn hảo

Nhược điểm

  • Không dễ để có chính xác kết quả mong muốn liên quan đến:
    • thời gian tải trang
    • tích hợp proxy
    • Tự động di chuyển
    • ...
  • Biến chứng
  • Khá chậm và thậm chí chậm hơn nếu html chứa các liên kết bên ngoài

Tuyên bố miễn trừ trách nhiệm: Tôi là người sáng lập ApiFlash. Tôi đã làm hết sức mình để cung cấp một câu trả lời trung thực và hữu ích.


2

Tôi đang sử dụng Windows nên tôi có thể sử dụng chức năng imagegrabwindow sau khi đọc mẹo ở đây từ stephan. Tôi đã thêm vào cắt xén (để loại bỏ tiêu đề Trình duyệt, thanh cuộn, v.v.) và thay đổi kích thước để có được hình ảnh cuối cùng. Đây là mã của tôi . Hy vọng rằng sẽ giúp được ai đó.


1

webkit2html hoạt động trên Mac OS X và Linux, khá đơn giản để cài đặt và sử dụng. Xem hướng dẫn này .

Đối với Windows, bạn có thể sử dụng CutyCapt , có chức năng tương tự.


2
@Smith: Lần trước tôi đã kiểm tra, CutyCapt có tất cả các phụ thuộc trong trình cài đặt. Có, bạn có thể sẽ không thể cài đặt cái này trong một tài khoản hạn chế, nhưng đó là cuộc sống. Lưu ý rằng tất cả các giải pháp khác đang sử dụng một số loại trình bao bọc xung quanh lõi kết xuất, vì vậy bạn đang ở cùng một vị trí với chúng.
Piskvor rời khỏi tòa nhà

1

Tôi đã sử dụng bluga . Api cho phép bạn chụp 100 ảnh chụp mỗi tháng mà không phải trả tiền, nhưng đôi khi nó sử dụng nhiều hơn 1 tín dụng cho một trang. Tôi vừa hoàn thành nâng cấp một mô-đun drupal, Bluga WebThumbs lên drupal 7 cho phép bạn in hình thu nhỏ trong một mẫu hoặc bộ lọc đầu vào.

Ưu điểm chính của việc sử dụng api này là nó cho phép bạn chỉ định kích thước trình duyệt trong trường hợp bạn sử dụng css thích ứng, vì vậy tôi đang sử dụng nó để có kết xuất cho bố cục trên thiết bị di động và máy tính bảng cũng như thông thường.

Có khách hàng api cho các ngôn ngữ sau:

PHP , Python , Ruby , Java , .Net C # , PerlBash (tập lệnh shell trông giống như nó yêu cầu perl)



1

Bạn có thể sử dụng https://grabz.it giải pháp.

Nó có API PHP rất linh hoạt và có thể được gọi theo nhiều cách khác nhau, chẳng hạn như từ trang web cronjob hoặc trang web PHP.

Để triển khai nó, trước tiên bạn cần lấy khóa ứng dụng và bí mậttải xuống SDK (miễn phí).

Và một ví dụ để thực hiện. Trước hết khởi tạo:

include("GrabzItClient.class.php");

// Create the GrabzItClient class
// Replace "APPLICATION KEY", "APPLICATION SECRET" with the values from your account!
$grabzIt = new GrabzItClient("Sign in to view your Application Key", "Sign in to view your Application Secret");

Và ví dụ ảnh chụp màn hình:

// To take a image screenshot
$grabzIt->URLToImage("http://www.google.com");  
// Or to take a PDF screenshot
$grabzIt->URLToPDF("http://www.google.com");
// Or to convert online videos into animated GIF's
$grabzIt->URLToAnimation("http://www.example.com/video.avi");
// Or to capture table(s)
$grabzIt->URLToTable("http://www.google.com");

Tiếp theo là tiết kiệm. Bạn có thể sử dụng một trong hai phương thức lưu, Savenếu xử lý gọi lại có thể truy cập công khai có sẵn và SaveTonếu không. Kiểm tra tài liệu để biết chi tiết .


Nếu bạn đang tìm kiếm ảnh chụp màn hình toàn trang, nhà cung cấp này yêu cầu đăng ký Chuyên nghiệp ($ 170 / năm).
chaoskreator

1

Tôi đã viết một ứng dụng nhanh và bẩn vào một ngày khác để làm điều này bằng Google API. Chắc chắn phạm vi để cải thiện ...

  • Nó sử dụng Google API ver 5 mới nhất.
  • Kích thước hình ảnh hiện rộng 500px
  • Hỗ trợ giao diện máy tính để bàn và thiết bị di động
  • Lưu vào một tập tin trong một thư mục được chỉ định
  • Kết hợp một hệ thống bộ đệm thô sơ

Tìm nó ở đây với một bản demo và mã trực tiếp .

Tôi đã không đăng mã ở đây chỉ đơn giản vì tôi tiếp tục tinh chỉnh nó và hy vọng khi tôi có thời gian, hãy chuyển đổi nó thành một lớp thích hợp.


0

Tôi đã sử dụng page2images . Nó được phát triển dựa trên cutycapt rất nhanh và ổn định. Nếu bạn không muốn dành quá nhiều thời gian cho hiệu suất và cấu hình, bạn nên sử dụng nó. Nếu bạn truy cập trang web của họ, bạn có thể tìm thêm chi tiết và mã PHP mẫu.


0

Sau rất nhiều lần lướt web tôi đã tìm thấy cái này.

PPTRAAS > Một công cụ miễn phí để chụp ảnh màn hình bằng cách chuyển URL của bạn dưới dạng tham số

Họ cung cấp nhiều tùy chọn bằng cách nhấn URL của họ.

  1. Nhận ảnh chụp màn hình toàn trang

    https://pptraas.com/sc Muff? url = {URL BẠN TẠI ĐÂY}

  2. Nhận ảnh chụp màn hình trang có kích thước cụ thể

    https://pptraas.com/sc Muff? url = {URL BẠN TẠI ĐÂY} & size = 400,400

  3. Một thậm chí có thể chuyển đổi trang sang pdf

    https://pptraas.com/pdf?url= {URL BẠN TẠI ĐÂY}


Josh, khi tôi tải lên câu trả lời, nó sử dụng để hoạt động tốt, tôi đoán chúng ta không thể phụ thuộc vào url này, vui lòng tìm một giải pháp thay thế khác vì hiện tại họ có thể đã dừng dịch vụ này
Fenil Shah

0

Bạn có thể làm 2 việc.

Sử dụng con rối

Bạn có thể sử dụng gói PHP Puppeteer để quay trình duyệt và chụp ảnh màn hình.

Sử dụng API

Có rất nhiều API ảnh chụp màn hình. Bạn có thể nhìn vào ảnh chụp màn hìnhAPI.net chẳng hạn. (Tuyên bố miễn trừ trách nhiệm Tôi là người tạo API đó)


-1

Không trực tiếp. Phần mềm như Selenium có các tính năng như thế này và có thể được kiểm soát bởi PHP nhưng có các phần phụ thuộc khác (chẳng hạn như chạy máy chủ dựa trên java của họ trên máy tính với trình duyệt bạn muốn chụp màn hình)


Có rất nhiều thư viện PHP hiện có sẵn cho nó. Không chính xác là thư viện 'PHP'. Liên quan đến một số trình duyệt và mã js.
Gijo Varghese

-1

bạn có thể sử dụng cutycapt.

kwhtml không được dùng nữa và hiển thị trang như trình duyệt cũ.


-1

Tôi đã thấy đây là công cụ tốt nhất và dễ nhất xung quanh: ScreenShotMachine . Đó là một dịch vụ trả phí, nhưng bạn nhận được 100 ảnh chụp màn hình miễn phí và bạn có thể mua thêm 2.000 với giá khoảng 20 đô la, vì vậy đó là một thỏa thuận khá tốt. Nó có cách sử dụng rất đơn giản, bạn chỉ cần sử dụng một URL, vì vậy tôi đã viết tập lệnh nhỏ này để lưu một tệp dựa trên nó:

<?php
  $url = file_get_contents("http://api.screenshotmachine.com/?key={mykey}&url=https://stackoverflow.com&size=X");

  $file = fopen("snapshots/stack.jpg", "w+");
  fwrite($file, $url);
  fclose($file);
  die("saved file!");
?>

Họ có một tài liệu rất tốt ở đây , vì vậy bạn chắc chắn nên xem qua.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.