2008-09-24 42 views
62

Công cụ dòng lệnh tốt để tạo ảnh chụp màn hình của trang web trên Linux là gì? Tôi cần phải tự động tạo ảnh chụp màn hình của các trang web mà không có sự tương tác của con người. Công cụ duy nhất tôi tìm thấy là khtml2png, nhưng tôi tự hỏi liệu có những công cụ khác không dựa trên khtml (tức là có hỗ trợ JavaScript tốt, ...).Chương trình dòng lệnh để tạo ảnh chụp màn hình trang web (trên Linux)

+0

có thêm một số ... – Stobor

+0

Một cách nhanh chóng khác để thực hiện việc đó là sử dụng màn trập: Cài đặt: * $ apt-get install shutter * Chạy: * $ shutter --web = http: //mail.ru -e * ' – 0x8BADF00D

+0

Chủ đề tại đây: http://softwarerecs.stackexchange.com/questions/16422/no-gui-tool-to-take-screenshots- của các trang web –

Trả lời

54

Một chi tiết nhỏ hơn có thể có ích ...

Bắt đầu firefox (hoặc trình duyệt khác) trong phiên X, trên bảng điều khiển của bạn hoặc sử dụng vncserver. Bạn có thể sử dụng các tùy chọn --height--width để đặt kích thước của cửa sổ thành toàn màn hình. Một lệnh firefox khác có thể được sử dụng để thiết lập URL được hiển thị trong cửa sổ firefox đầu tiên. Bây giờ bạn có thể lấy hình ảnh màn hình bằng một trong nhiều lệnh, chẳng hạn như lệnh "nhập" từ gói Imagemagick hoặc sử dụng gimp hoặc fbgrab hoặc xv.

#!/bin/sh 

# start a server with a specific DISPLAY 
vncserver :11 -geometry 1024x768 

# start firefox in this vnc session 
firefox --display :11 

# read URLs from a data file in a loop 
count=1 
while read url 
do 
    # send URL to the firefox session 
    firefox --display :11 $url 

    # take a picture after waiting a bit for the load to finish 
    sleep 5 
    import -window root image$count.jpg 

    count=`expr $count + 1` 
done < url_list.txt 

# clean up when done 
vncserver -kill :11 
+1

Điều này làm việc tốt đẹp, ngoại trừ firefox '-display: 11' cần phải là' --display =: 11' Nhưng bạn đã cho tôi một điểm khởi đầu tuyệt vời! Cảm ơn vì điều đó! –

+0

Rất đẹp. Cần thêm thông tin. Giống như tùy chọn --display. Làm sao mà bạn biết được điều đó? Tài liệu để làm việc này ở đâu. Lý do là, tôi cần chương trình để mở toàn màn hình. Khi tôi nhận được một ảnh chụp màn hình Firefox không phải là toàn màn hình nhưng trong một cửa sổ nhỏ thay đổi kích thước. – shrimpwagon

+0

Điều này sẽ được chuyển hướng đến: [Công cụ No-GUI để chụp ảnh màn hình của các trang web] (https://softwarerecs.stackexchange.com/q/16422/25142) – marcanuy

2

Tôi biết nó không phải là công cụ dòng lệnh nhưng bạn có thể dễ dàng tạo kịch bản để sử dụng http://browsershots.org/ Không hữu ích cho các ứng dụng không được lưu trữ trên IP bên ngoài.

Một công cụ tuyệt vời không kém phần nào.

+0

Thực ra tôi nghĩ rằng tôi có thể sử dụng mã từ dự án này để viết phiên bản địa phương của riêng tôi thay vì gửi nội dung thông qua browsershots.org (vì nó dành cho một công ty). – ujh

1

Tôi không biết bất cứ điều gì tùy chỉnh xây dựng, tôi chắc chắn rằng có thể có một cái gì đó thực hiện với động cơ tắc kè để trả cho một file png thay vì màn hình ...

Hoặc, bạn có thể cháy lên firefox ở chế độ toàn màn hình trong một cá thể máy chủ VNC chuyên dụng và sử dụng trình chụp màn hình chụp màn hình để chụp ảnh màn hình. Toàn màn hình = tối thiểu chrome, ví dụ máy chủ VNC = không hiển thị giao diện người dùng + bạn có thể chọn độ phân giải của mình.

Sử dụng xinit với Xvnc làm máy chủ X để thực hiện việc này - bạn sẽ cần phải đọc tất cả các trang.

Nhược điểm là rằng ảnh chụp màn hình luôn luôn là cùng kích thước, không thay đổi kích thước theo quy định của trang web ...

1

Có là nhập khẩu lệnh, nhưng bạn sẽ cần X, và một chút bash tập lệnh mở cửa sổ trình duyệt, sau đó chụp ảnh màn hình và đóng trình duyệt.

Bạn có thể tìm thêm thông tin here, hoặc chỉ cần gõ nhập khẩu --help trong một vỏ;)

5

scrot là công cụ dòng lệnh để chụp ảnh màn hình. Xem số man page và số tutorial này.

Bạn cũng có thể muốn xem kịch bản trình duyệt. Có các add-on firefox chụp ảnh màn hình như screengrab (có thể chụp toàn bộ trang nếu bạn muốn, không chỉ là bit hiển thị) và sau đó bạn có thể chạy trình duyệt bằng greasemonkey để chụp ảnh màn hình.

+0

Liên kết làm việc với scrot: http://freshmeat.net/projects/scrot/ –

+0

@Computer Guru - liên kết đã sửa, cảm ơn bạn –

1

Không cho dòng lệnh nhưng ít nhất để sử dụng trong hoạt động hàng loạt cho một tập lớn của các url mà bạn có thể sử dụng firefox với FireShot addon của nó (phiên bản được cấp phép?).

  1. Mở tab cho tất cả các url trong tập hợp của bạn (ví dụ: "tab đang mở cho tất cả dấu trang trong thư mục này ...").
  2. Sau đó, trong mắt FireShot "Capture tất cả các tab"
  3. Trong cửa sổ soạn thảo sau đó gọi "chọn tất cả các bức ảnh -> lưu tất cả các bức ảnh"

Sau khi thiết lập các thuộc tính chụp màn hình (kích thước, fileformat, vv) trước khi bạn kết thúc bằng một tập hợp các shotfiles đẹp.

Steffen

37

Hãy thử đẹp công cụ nhỏ CutyCapt, mà chỉ phụ thuộc vào Qt và QtWebkit. ;)

+5

Tốt hơn nhiều so với câu trả lời được chấp nhận. – exic

+1

CutyCapt là một công cụ tuyệt vời, nhưng tôi đã sử dụng phông chữ phông chữ và chúng không được hiển thị chính xác. – MarcDefiant

+0

Rất tiếc, nó không báo cáo kết quả tải xuống dưới dạng mã thoát. – Grzegorz

3

Xem Webkit2png.

Tôi nghĩ rằng đây là những gì tôi đã sử dụng trong quá khứ.

Chỉnh sửa Tôi phát hiện ra tôi chưa sử dụng ở trên, nhưng đã tìm thấy this page với các đánh giá về nhiều chương trình và kỹ thuật khác nhau.

7

Hãy xem PhantomJS, có vẻ như là một công cụ Webkit có thể ghi được miễn phí chạy trên Linux, OSX và Windows. Tôi đã không sử dụng nó vì chúng tôi hiện đang sử dụng Browshot (giải pháp thương mại), nhưng khi tất cả các khoản tín dụng của chúng tôi hết, chúng tôi sẽ nghiêm túc lo lắng (vì nó miễn phí và có thể chạy trên máy chủ của chúng tôi)

+0

Tôi vừa thử cái này (phantomjs) trên tài khoản hostmonster của mình, một" nếu nó hoạt động ở đây nó có thể làm việc ở bất cứ đâu "môi trường. 1. tải xuống tarball 2.untar tarball 3. vào thư mục bin 4. cắt và dán ví dụ thế giới hello từ trang bắt đầu nhanh của họ. 5. chạy hellow thế giới – godzilla

+0

(tiếp từ bài viết cuối) 6. chờ một vài phút (tôi nghĩ rằng nó bị nhốt nhưng nó chỉ mất một thời gian cho lần đầu tiên). 6 cắt và vượt qua ví dụ dưới đây helloWorld.js 7. thay đổi example.com đến trang web bạn muốn ảnh chụp màn hình. 8. chạy ví dụ 5 phút tôi đã làm để làm điều này là rất ít đau hơn tring để có được webkit2png làm việc, thanx MaxiWheat xin lỗi cho 2 bài riêng biệt, chỉnh sửa bộ đếm thời gian chạy ra ngoài – godzilla

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