2012-06-28 4 views
9

के साथ इंजेक्शनजेएस मैं गतिशील सामग्री वाली वेबसाइट को स्क्रैप करने के लिए कैस्परजेएस का उपयोग करने की कोशिश कर रहा हूं और अब तक असफल रहा हूं। वेबसाइट सामग्री बनाने के लिए स्वत: पूर्ण का उपयोग करने के लिए कुछ जेएस libaries (उदा। प्रोटोटाइप) का उपयोग करता है। इसलिए मैं कुछ मूल्य डालने की कोशिश कर रहा हूं और सामग्री निर्माण को सेट करने के लिए ईवेंट ट्रिगर कर रहा हूं। घटनाओं को सम्मिलित करना और ट्रिगर करना ठीक काम करता है, लेकिन कोई सामग्री नहीं बनाई जाती है।प्रेतजेस और कैस्परजे

मैं कैस्परजेएस के लिए नया हूं और पाया कि इसमें मुक्ति के सापेक्ष पथों के साथ समस्याएं हैं। मुझे संदेह है कि मेरी समस्या उन मुक्तियों से उत्पन्न होती है जो मेरे पृष्ठ के माहौल में ठीक से लोड नहीं हो रही हैं। इसलिए मैं injectJs उपयोग करने के लिए उन्हें इस

// ... कैस्पर बना सकते हैं और कुछ अन्य सामान

casper.then कर (function() {

this.echo(this.page.injectJs('http://www.my-website.com/path/to/js1')); 
this.echo(this.page.injectJs('http://www.my-website.com/path/to/js2')); 

}); 

तरह इंजेक्षन करने की कोशिश की दुर्भाग्यवश यह दोनों कार्यों के लिए झूठा रिटर्न देता है। स्क्रिप्ट का मार्ग सही है, और इस समस्या की जड़ कहाँ हो सकती है?

धन्यवाद यो आप किसी भी मदद के लिए बहुत कुछ।

उत्तर

4

मुझे विश्वास नहीं है कि कैस्परजेएस स्क्रिप्ट इंजेक्ट करने के लिए HTTP अनुरोधों को संभाल सकता है। यह अजीब है क्योंकि वे वास्तव में यह in their FAQ on including jQuery दिखाते हैं। हालांकि, कि एक ही सवाल जवाब का कहना है निम्नलिखित:

आप HTTP प्रोटोकॉल का उपयोग कर स्क्रिप्ट इंजेक्षन नहीं कर सकते हैं, आप वास्तव में करने के लिए है स्क्रिप्ट संसाधन के लिए एक रिश्तेदार/पूर्ण फाइल सिस्टम पथ का उपयोग करें।

बस दो बार जांचने के लिए, मैंने मैक ओएस एक्स और आपके उपरोक्त कोड का उपयोग करके इसे स्वयं करने की कोशिश की। जब यह स्थानीय था तो http और true पर फ़ाइल का उपयोग करते समय गूंज के परिणाम false थे।

+0

धन्यवाद casperjs पर होना चाहिए। मुझे लगता है कि स्क्रिप्ट डाउनलोड करना सबसे अच्छा तरीका है और फिर उन्हें स्थानीय पथ से शामिल करना है। – Marco

+3

रिकॉर्ड के लिए मैंने उस दस्तावेज को अद्यतन किया है, उस गलती के लिए खेद है। – NiKo

+0

मुझे लगता है कि आप गैर-स्थानीय स्क्रिप्ट्स को इंजेक्ट करने के लिए 'रिमोट राइट' का उपयोग कर सकते हैं – wildpeaks

1

यह कैसे मैं Casperjs लिपि में jQuery के सम्मिलित करें

casper.options.clientScripts = ["jquery-3.2.1.min.js"] 

Jquery फ़ाइल एक ही निर्देशिका है जहाँ स्क्रिप्ट exisit

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