2013-02-03 20 views
6

में कमांड लाइन का उपयोग कर सभी HTML फ़ाइलों को सहेजने के लिए हेडलेस फ़ायरफ़ॉक्स का उपयोग करना वर्तमान में स्क्रीन शॉट्स को कैप्चर करने के लिए Xvfb और फ़ायरफ़ॉक्स के साथ shell_exec का उपयोग करना। हालांकि, shell_exec का उपयोग कर एक निर्देशिका में संपूर्ण एचटीएमएल (उदा। पृष्ठ के रूप में सहेजें -> वेब पेज पूर्ण।) डाउनलोड करने की आवश्यकता है। मोज़िला डेवलपर्स फ़ोरम में उपलब्ध सभी अलग-अलग विकल्पों को देखा है लेकिन यह पता लगाने में सक्षम नहीं है कि यह कैसे करें।लिनक्स

यह कोड ऐसा प्रतीत होता है जो मुझे चाहिए लेकिन यह कहां और कैसे लागू किया गया है ताकि यह 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

वहाँ एक Stackoverflow मैनुअल यहाँ समाधान है, लेकिन यह shell_exec को संबोधित नहीं करता: How to save a webpage locally including pictures,etc

उत्तर

1

वहाँ कुछ ही विकल्प है कि मैं के बारे में पता कर रहे हैं, लेकिन कोई भी जो मुझे पता है वह बिल्कुल आपके प्रश्न को ठीक कर रहा है ..

  1. खोल से firefox http://yoursite.com खोलें, फिर xte या इसी तरह की विधि का उपयोग कर फ़ायरफ़ॉक्स पर कीस्ट्रोक भेजें। (हालांकि यह हेडलेस मोड नहीं है।)
  2. wget का उपयोग करके डाउनलोड करें। यह पुनरावर्ती तरीके से काम कर सकता है। या वैकल्पिक रूप से आप HTML को पार्स कर सकते हैं, अगर यह काफी सरल वेब पेज है। यदि आपको फॉर्म जमा करने की आवश्यकता है, तो wget के बजाय कर्ल का उपयोग करें।
  3. greasemonkey addon & का उपयोग करें एक स्क्रिप्ट लिखें, जो http://some-fake-page.com/?download=http://yoursite.com & पर लोड हो जाएगा, फिर उस नकली पृष्ठ यूआरएल के साथ फ़ायरफ़ॉक्स खोलें।
  4. ऊपर काम करने के लिए अपने स्वयं के फ़ायरफ़ॉक्स एडन का विकास करें।

इसके लिए अन्य बेहतर विकल्प भी हो सकते हैं, लेकिन मैं उन्हें नहीं जानता।

+0

धन्यवाद। मुझे लगता है कि आपका नंबर तीन जवाब कुंजी हो सकता है। और, मोज़िला ने कोड स्निपेट कैसे किया या कैसे किया, (मेरा उदाहरण एक)? उनमें से कई हैं लेकिन उनके साथ क्या करना है इसका कोई स्पष्टीकरण नहीं है। आपका उत्तर तीन इनका उपयोग सीधे करने का तरीका हो सकता है। – user2036418

+0

मुझे यकीन नहीं है, अगर आप सीधे greasemonkey स्क्रिप्ट से मोज़िला कोड स्निपेट का उपयोग कर सकते हैं। (लेकिन मैं गलत हो सकता हूं।) उन्हें सीधे कस्टम एडन से उपयोग किया जा सकता है। हालांकि, जीएम कुछ मोज़िला एपीआई का उपयोग करने के लिए एक रैपर फ़ंक्शन प्रदान करता है – anishsane

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^