2013-02-03 17 views
6

Używanie shell_exec z Xvfb i FireFox do przechwytywania zrzutu ekranu. Należy jednak pobrać cały plik html (np. Zapisz stronę jako -> Strona WWW zakończ.) Do katalogu używającego shell_exec. Przyjrzałem się wszystkim różnym opcjom dostępnym na forach deweloperów Mozilli, ale nie byłem w stanie wymyślić, jak to zrobić.Używanie funkcji Headless FireFox do zapisywania wszystkich plików HTML za pomocą wiersza poleceń w systemie Linux

Ten kod wydaje się być tym, czego potrzebuję, ale gdzie i jak jest zaimplementowany, aby był dostępny w powłoce_sekwencji?

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

Jest Stackoverflow instrukcja rozwiązanie tutaj, ale to nie rozwiązuje shell_exec: How to save a webpage locally including pictures,etc

Odpowiedz

1

Istnieje kilka opcji, które znam, ale żaden, który znam, nie pasuje dokładnie do twojego pytania.

  1. Otwórz firefox http://yoursite.com z powłoki, a następnie wyślij naciśnięcia klawiszy do firefox za pomocą xte lub podobnej metody. (To nie jest tryb bezgłowy).
  2. Pobierz za pomocą wget. Może działać rekurencyjnie. Lub alternatywnie możesz przeanalizować kod HTML, jeśli jest to dość prosta strona internetowa. Jeśli chcesz przesłać formularz, użyj curl zamiast wget.
  3. Użyj skryptu greasemonkey addon & napisać skrypt, który zostanie załadowany na http://some-fake-page.com/?download=http://yoursite.com & następnie otwórz firefox z tym fałszywym adresem strony.
  4. Stwórz własny dodatek do Firefoxa, aby wykonać powyższe czynności.

Być może istnieją inne lepsze opcje, ale ja ich nie znam.

+0

Dzięki. Myślę, że twoja odpowiedź numer trzy może być kluczem. Oraz w jaki sposób lub w jaki sposób działają fragmenty kodu wydane przez Mozillę (My Example One)? Mają kilka z nich, ale nie mają żadnego wyjaśnienia, co z nimi zrobić. Twoja trzecia odpowiedź może być sposobem na wykorzystanie ich bezpośrednio. – user2036418

+0

Nie jestem pewien, czy możesz użyć fragmentów kodu mozilla bezpośrednio ze skryptu greasemonkey. (Ale mogę się mylić.) Mogą być bezpośrednio użyte z niestandardowego dodatku. Jednak GM zapewnia funkcję wrapper do korzystania z niektórych API Mozilla – anishsane

Powiązane problemy