2015-01-29 17 views
13

का उपयोग कर जावास्क्रिप्ट प्रस्तुत एचटीएमएल स्रोत प्राप्त करें सबसे पहले, मैं विकास या परीक्षण पर्यावरण में कोई मदद नहीं ढूंढ रहा हूं। इसके अलावा मैं phantomjs के लिए नया हूँ और मैं चाहता हूं कि लिनक्स टर्मिनल पर केवल phantomjs के कमांड लाइन ऑपरेशन है।phantomjs

मेरे पास एक HTML पृष्ठ है जिसका शरीर कुछ जावास्क्रिप्ट कोड द्वारा प्रस्तुत किया जाता है। मुझे क्या चाहिए कि मैं phantomjs का उपयोग कर उस प्रस्तुत एचटीएमएल सामग्री को डाउनलोड करना चाहता था।

मुझे phantomjs का उपयोग करने का कोई विचार नहीं है। शैल स्क्रिप्टिंग में मुझे थोड़ा सा अनुभव है। तो मैंने curl के साथ ऐसा करने की कोशिश की है। लेकिन चूंकि जावास्क्रिप्ट को प्रस्तुत करने के लिए कर्ल पर्याप्त नहीं है, इसलिए मैं केवल डिफ़ॉल्ट स्रोत कोड का HTML प्राप्त करने में सक्षम था। प्रस्तुत सामग्री डाउनलोड नहीं की गई थी। मैंने सुना है कि रूबी मशीनीकरण यह काम कर सकता है। लेकिन मुझे रूबी के बारे में कोई जानकारी नहीं है। तो आगे की जांच पर मुझे कमांड लाइन टूल phantomjs मिला। मैं इसे phantomjs के साथ कैसे कर सकता हूं?

कृपया यह पूछने में संकोच न करें कि मुझे कौन सी अतिरिक्त जानकारी प्रदान करने की आवश्यकता है।

+0

अपने शोध साझा करना प्रत्येक व्यक्ति में मदद करता है में पृष्ठ स्रोत को बचाने के लिए। हमें बताएं कि आपने क्या प्रयास किया है और यह आपकी आवश्यकताओं को पूरा क्यों नहीं करता है। यह दर्शाता है कि आपने स्वयं की मदद करने के लिए समय निकाला है, यह हमें स्पष्ट उत्तरों को दोहराने से बचाता है, और सबसे अधिक यह आपको अधिक विशिष्ट और प्रासंगिक उत्तर प्राप्त करने में मदद करता है! यह भी देखें [कैसे पूछें] (http://stackoverflow.com/questions/how-to-ask) – Cerbrus

+0

मैंने अपने प्रश्नों को मेरे द्वारा किए गए शोधों के साथ अपडेट किया है। –

+0

क्या आप केवल एचटीएमएल सामग्री डाउनलोड करने या इसे छवि के रूप में डाउनलोड करने का प्रयास करने के लिए प्रेतोज़ का उपयोग कर रहे हैं? छवि जांच उत्पन्न करने के लिए http://phantomjs.org/screen-capture.html – jsjunkie

उत्तर

12

दुर्भाग्य से, यह केवल PhantomJS कमांड लाइन का उपयोग करना संभव नहीं है। वास्तव में PhantomJS के साथ कुछ भी करने के लिए आपको जावास्क्रिप्ट फ़ाइल का उपयोग करना होगा।

यहाँ आप उपयोग कर सकते हैं

कोड स्क्रिप्ट का एक बहुत ही सरल संस्करण ज्यादातर https://stackoverflow.com/a/12469284/4499924

printSource.js

var system = require('system'); 
var page = require('webpage').create(); 
// system.args[0] is the filename, so system.args[1] is the first real argument 
var url = system.args[1]; 
// render the page, and run the callback function 
page.open(url, function() { 
    // page.content is the source 
    console.log(page.content); 
    // need to call phantom.exit() to prevent from hanging 
    phantom.exit(); 
}); 

से नकल बाहर मानक के पेज स्रोत मुद्रित करने के लिए है ।

phantomjs printSource.js http://todomvc.com/examples/emberjs/

एक फ़ाइल

phantomjs printSource.js http://todomvc.com/examples/emberjs/ > ember.html

+0

मुझे आशा है कि यह मेरे प्रश्न का उत्तर देगा। मुझे लगता है कि मुझे इसके बजाय अपने लक्षित एप्लिकेशन में लोड होने वाली स्क्रिप्ट का उपयोग करने की आवश्यकता हो सकती है। –

+1

मुझे लगता है कि इस विशिष्ट उदाहरण के लिए काम करेगा, लेकिन मैंने जो समाधान दिया है वह आपके लिए काम करेगा –

+1

मेरे लिए काम करता है। बहुत उपयोगी जवाब –