2008-09-23 47 views
7

Một vấn đề tôi đã từng đùa giỡn là một dịch vụ yêu cầu máy chủ của tôi tạo ra ảnh chụp màn hình của trang web tại một url nhất định. Vấn đề là tôi không có bất kỳ ý tưởng làm thế nào tôi sẽ thực hiện điều này. Tôi chủ yếu sử dụng một chồng phần mềm LAMP, do đó, câu trả lời đã được đưa ra với ý nghĩ đó sẽ là hữu ích nhất. Một lần nữa các yêu cầu cơ bản là: Cho một url, máy chủ cần tạo ra một tệp hình ảnh của trang web được hiển thị tại url đó. Cảm ơn trước!Máy chủ Tạo ảnh chụp màn hình web?

+1

đừng lo lắng chấn thươngPony, dịch vụ web của tôi không liên quan gì đến việc bật lên hình ảnh di chuột qua liên kết trong khi bạn đang cố đọc một bài viết :) –

Trả lời

2

Bạn thực sự cần có máy chủ khởi chạy trình duyệt web được đề cập và chụp ảnh màn hình ứng dụng với các thư viện thích hợp. Apache sẽ không hiển thị trang cho bạn vì vậy bạn phải có phần mềm mà sẽ.

+0

. Một vài ý tưởng mà tôi đã thực sự tự động thu thập ảnh chụp màn hình từ môi trường máy tính để bàn hoặc bằng cách nào đó sử dụng công cụ tắc kè để tạo phiên bản được hiển thị của trang mà tôi có thể tạo hình ảnh. Hmm .... –

2

Vâng, đó là những gì cần thiết. Tôi làm điều này trong asp.net, và tôi thực sự tạo ra một đối tượng WebBrowser có thể sử dụng được trong các thư viện lớp .Net framework để tạo ra ảnh chụp màn hình.

6

Bạn cũng có thể muốn xem webkit, nó được biết là dễ nhúng hơn (được sử dụng bởi Adobe cho AIR, bởi Google cho Chrome, bởi Apple cho iPhone ...) rồi các công cụ hiển thị khác. Điều này có thể mất nhiều công việc hơn một chút để thiết lập, nhưng nó sẽ ổn định hơn nhiều so với một số bản hack đã khởi chạy trình duyệt web và chụp ảnh màn hình.

+0

Tôi thích suy nghĩ của bạn –

+3

Ngày nay có sẵn [PhantomJS] (http://www.phantomjs.org/), một WebKit không đầu. – jholster

+0

@jholster Cảm ơn nhận xét này! PhantomJS trông giống hệt như những gì tôi đang tìm kiếm! – ahans

6

NẾU máy chủ của bạn là một Mac, sau đó tôi khuyên bạn nên webkit2png, mà là một chương trình python ngắn đó thúc đẩy Objective-C API WebKit để render một URL. Cá nhân, tôi sử dụng nó kết hợp với WWW::Mechanize để đi bộ trang web phát triển của tôi và làm cho ảnh chụp màn hình của mỗi trang - hữu ích cho chức năng kiểm tra, cho khách hàng và giữ ảnh chụp màn hình cập nhật. Ảnh chụp màn hình kết quả là hoàn hảo, nhưng đôi khi rất cao cho các trang cuộn dài.

NẾU máy chủ của bạn có một tổ chức phi-trần-xương Linux distro với KDE cài đặt, sau đó bạn có thể thử khtml2png. Tôi đã không cố gắng mà bản thân mình, nhưng nhìn thấy nó được đề cập trên trang webkit2png.

+0

Bằng cách nào đó tôi không nghĩ rằng có nhiều máy chủ Mac ra khỏi đó, nhưng khtml2png có vẻ tốt (nếu không được đánh bóng) – davr

2

Tôi sử dụng dịch vụ http://webthumb.bluga.net để tạo hình thu nhỏ. Mạnh mẽ, mạnh mẽ, dễ sử dụng và có mức giá rất hợp lý. Tôi có một trang web sản xuất lưu lượng truy cập cao sử dụng dịch vụ này và nó hoạt động rất tốt. Do khó khăn trong việc tạo ra một dịch vụ ảnh chụp màn hình web mạnh mẽ, thật tuyệt khi có người khác làm công việc khó khăn.

+1

nhưng nó không chụp toàn bộ trang web, nó chỉ thu nhỏ nó. – PabloC

0

Giải pháp không miễn phí cho Java là WebRenderer. Tính năng thú vị: nó có thể mô phỏng trình duyệt Safari, IE hoặc Firefox khi hiển thị. Họ có một phiên bản máy tính để bàn và một phiên bản máy chủ không đầu. Ngoài ra, họ có mã ví dụ cho thấy cách hiển thị hình ảnh màn hình của trang web.

0

ảo máy chủ đệm khung X

Tôi thà khuyên XVFB (X server đệm khung ảo) là giải pháp tốt nhất cho việc chụp màn hình của một máy chủ không đầu. Virtual framebuffer X server xvfb cung cấp một máy chủ X có thể chạy trên các máy không có phần cứng hiển thị và không có các thiết bị đầu vào vật lý. Tôi đang sử dụng nó trên máy chủ của mình để kiểm tra URL và chụp ảnh màn hình của nó. Chúng tôi đang sử dụng Ubuntu & XVFB + FIREFOX. Nó hoạt động tốt. Sửa đổi theo nhu cầu của bạn. Hãy xem qua các bài viết này. Nó có thể được sử dụng đầy đủ cho bạn.

http://www.semicomplete.com/blog/geekery/xvfb-firefox.html

http://linux.about.com/cs/linux101/g/xvfb.htm

http://www.xfree86.org/4.0.1/Xvfb.1.html

3

PhantomJS là một không đầu (dòng lệnh) dựa trên Webkit trình duyệt mà có thể dễ dàng scripted để lưu ảnh chụp màn hình của trang web.

Các vấn đề liên quan