2013-02-03 29 views
6

Sử dụng shell_exec với Xvfb và FireFox hiện tại để chụp ảnh màn hình. Tuy nhiên, cần tải xuống toàn bộ html (ví dụ: Lưu trang dưới dạng -> Trang Web hoàn thành.) Vào thư mục bằng shell_exec. Đã xem xét tất cả các tùy chọn khác nhau có sẵn trong Diễn đàn dành cho nhà phát triển Mozilla nhưng không thể tìm ra cách thực hiện điều này.Sử dụng FireFox không đầu để lưu tất cả các tệp HTML bằng dòng lệnh trong Linux

Mã này dường như là những gì tôi có thể cần nhưng ở đâu và như thế nào được thực hiện để có thể truy cập được trong shell_exec?

var file = Components.classes["@mozilla.org/file/local;1"] 
.createInstance(Components.interfaces.nsILocalFile); 
file.initWithPath("C:\\filename.html"); 
var wbp = Components.classes['@mozilla.org/embedding/browser/nsWebBrowserPersist;1'] 
.createInstance(Components.interfaces.nsIWebBrowserPersist); 
wbp.saveDocument(content.document, file, null, null, null, null); 

The Above Code Source

void saveDocument(
in nsIDOMDocument aDocument, 
in nsISupports aFile, 
in nsISupports aDataPath, 
in string aOutputContentType, 
in unsigned long aEncodingFlags, 
in unsigned long aWrapColumn 
); 

The Above Code Source

Có một Stackoverflow tay giải pháp ở đây nhưng nó không giải quyết shell_exec: How to save a webpage locally including pictures,etc

Trả lời

1

Có vài lựa chọn mà tôi biết, nhưng không có gì tôi biết là phù hợp với câu hỏi của bạn chính xác ..

  1. Mở firefox http://yoursite.com từ trình bao, sau đó gửi tổ hợp phím đến firefox bằng cách sử dụng xte hoặc phương pháp tương tự. (Đây không phải là chế độ không đầu.)
  2. Tải xuống bằng cách sử dụng wget. Nó có thể hoạt động theo cách đệ quy. Hoặc luân phiên bạn có thể phân tích cú pháp HTML, nếu nó là trang web khá đơn giản. Nếu bạn cần gửi biểu mẫu, hãy sử dụng curl thay vì wget.
  3. Sử dụng tiện ích bổ sung mỡ bôi trơn & viết tập lệnh, sẽ được tải theo số http://some-fake-page.com/?download=http://yoursite.com & rồi mở firefox bằng url trang giả đó.
  4. Phát triển addon firefox của riêng bạn để thực hiện công việc trên.

Có thể có các tùy chọn khác tốt hơn cho việc này, nhưng tôi không biết chúng.

+0

Cảm ơn. Tôi nghĩ câu trả lời số ba của bạn có thể là chìa khóa. Và, Mozilla đã cung cấp đoạn mã như thế nào, (Ví dụ của tôi Một)? Họ có một số trong số này nhưng không có giải thích về những gì để làm với họ. Câu trả lời của bạn có thể là cách để sử dụng chúng trực tiếp. – user2036418

+0

Tôi không chắc chắn, nếu bạn có thể sử dụng đoạn mã mozilla trực tiếp từ tập lệnh nhập liệu bằng mỡ. (Nhưng tôi có thể sai.) Họ có thể được sử dụng trực tiếp từ một addon tùy chỉnh. Tuy nhiên, GM cung cấp chức năng trình bao bọc để sử dụng một số API mozilla – anishsane

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