firefox - लिनक्स पर हेडलेस, पटकथा फ़ायरफ़ॉक्स / वेबकिट?




webkit screen-scraping headless-browser (7)

WebKitDriver पर एक नज़र WebKitDriver । इस परियोजना में वेबकिट के हेडलेस कार्यान्वयन शामिल हैं।

मैं कुछ वेब इंटरैक्शन स्वचालित रूप से एक सुरक्षित वेबसाइट से फाइलों के आवधिक डाउनलोड को स्वचालित करने के लिए देख रहा हूं। इसमें मूल रूप से मेरा उपयोगकर्ता नाम / पासवर्ड दर्ज करना और उचित यूआरएल पर नेविगेट करना शामिल है।

मैंने पाइथन में सरल पटकथा की कोशिश की, इसके बाद अधिक परिष्कृत पटकथा, केवल इस विशेष वेबसाइट को खोजने के लिए कुछ अप्रिय जावास्क्रिप्ट और लॉगिन के लिए फ्लैश आधारित तंत्र का उपयोग कर रहा है, जो मेरी विधियों को बेकार कर रहा है।

मैंने फिर HTMLUnit की कोशिश की, लेकिन ऐसा लगता है कि यह भी काम नहीं करना चाहता है। मुझे संदेह है कि फ्लैश का उपयोग मुद्दा है।

मैं वास्तव में इसके बारे में और नहीं सोचना चाहता हूं, इसलिए मैं लॉग इन करने के लिए एक वास्तविक ब्राउज़र को स्क्रिप्ट करने और मुझे आवश्यक फाइल को पकड़ने की ओर झुका रहा हूं।

आवश्यकताएं हैं:

  • लिनक्स सर्वर पर चलाएं (यानी कोई एक्स चल रहा है)। अगर मुझे वास्तव में XI ऐसा करने की ज़रूरत है, लेकिन मैं खुश नहीं रहूंगा।
  • विश्वसनीय होना। मैं इस बात को शुरू करना चाहता हूं और इसके बारे में कभी भी सोचना नहीं चाहता हूं।
  • स्क्रिप्ट योग्य हो। कुछ भी परिष्कृत नहीं है, लेकिन मुझे ब्राउजर को विभिन्न कदम उठाने और पृष्ठों को देखने के लिए बताने में सक्षम होना चाहिए।

क्या एक हेडलेस, एक्स-कम स्क्रिप्ट योग्य ब्राउज़र के लिए कोई अच्छी टूलकिट है? क्या आपने ऐसा कुछ करने की कोशिश की है और यदि ऐसा है तो आपके पास ज्ञान के कोई शब्द हैं?


लिनक्स के लिए iMacros आपको फ़ायरफ़ॉक्स और क्रोम स्क्रिप्ट करने की अनुमति देता है: http://wiki.imacros.net/Linux


क्या आपने Selenium की कोशिश की है? यह आपको फ़ायरफ़ॉक्स के विस्तार का उपयोग करके उपयोग परिदृश्य रिकॉर्ड करने की अनुमति देगा, जिसे बाद में कई अलग-अलग तरीकों से उपयोग किया जा सकता है।

संपादित करें: मुझे अभी एहसास हुआ कि यह बहुत देर से प्रतिक्रिया थी। :)


मुझे नहीं पता कि फ्लैश इंटरैक्शन कैसे करें (और मुझे भी रूचि है), लेकिन एचटीएमएल / जावास्क्रिप्ट के लिए आप Chickenfoot उपयोग कर सकते हैं।

और लिनक्स पर काम कर रहे एक हेडलेस + स्क्रिप्ट करने योग्य ब्राउज़र को पाने के लिए आप क्यूटी वेबकिट लाइब्रेरी का उपयोग कर सकते हैं। यहां एक उदाहरण का उपयोग है


phantomjs बारे में क्या?


इसे पूरा करने के लिए, मैं केवल क्रोम एक्सटेंशन लिखता हूं जो कॉच डीबी ( example और इसके फ़्यूटन) पर पोस्ट करते हैं। क्रॉस-डोमेन XHR को अनुमति देने के लिए मैनिफेस्ट में अनुमतियों के लिए सोफे जोड़ें।

(मैं इस धागे पर जो कुछ भी कर रहा हूं उसके सिरदर्द विकल्प की खोज में आया; इस धागे को मिलाकर, मैं कुछ बिंदु पर क्रॉबर को आजमाने की कोशिश कर रहा हूं।)

साथ ही, इस वेबसाइट की विचित्र विशेषताओं पर विचार करते हुए, मैं यह सोचने में मदद नहीं कर सकता कि क्या आप फ्लैश और जावास्क्रिप्ट के आसपास कुछ सुरक्षा छेद का फायदा उठा सकते हैं।


देशी अनुप्रयोगों के लिए मुख्य लाभ यह है कि वे एक प्लेटफॉर्म (संपर्क, कैमरा फ्लैश, एसएमएस, टेलीफोनी, नेटवर्क, ब्लूटूथ, सेंसर, कच्चे सॉकेट ...) के सभी देशी एपीआई तक पहुंच सकते हैं, जबकि एक प्रगतिशील वेब एप्लिकेशन (अभी तक) क्योंकि वे मानक वेब क्षमताओं से बाधित हैं।

प्रगतिशील वेब अनुप्रयोगों का लक्ष्य सबसे महत्वपूर्ण मामलों को कवर करने के लिए इन क्षमताओं का विस्तार करना है। इस मूड में, प्रगतिशील वेब ऐप्स पर एक नज़र डालें : हमारी आत्मा खोने के बिना टैब से बचें जहां आप एक प्रगतिशील वेब एप्लिकेशन की पेशकश कर सकते हैं की एक सूची पा सकते हैं:

  • उत्तरदायी: किसी भी फार्म कारक फिट करने के लिए
  • कनेक्टिविटी स्वतंत्र: सेवा श्रमिकों के साथ प्रगतिशील रूप से बढ़ी ताकि वे ऑफ़लाइन काम कर सकें
  • ऐप-जैसी-इंटरैक्शन: ऐप नेविगेशन और इंटरैक्शन बनाने के लिए शैल + कंटेंट एप्लिकेशन मॉडल को अपनाना
  • ताज़ा: सेवा कार्यकर्ता अद्यतन प्रक्रिया के लिए पारदर्शी रूप से हमेशा अद्यतित धन्यवाद
  • सुरक्षित: स्नूपिंग को रोकने के लिए टीएलएस (एक सेवा कर्मचारी आवश्यकता) के माध्यम से सेवा दी
  • खोजने योग्य: W3C प्रकट करने के लिए "एप्लिकेशन" के रूप में पहचाने जाने योग्य हैं और सेवा कर्मचारी पंजीकरण स्कोप खोज इंजन को उन्हें ढूंढने की इजाजत देता है
  • पुन: सहभागिता: ओएस के पुनः सहभागिता यूआई का उपयोग कर सकते हैं; उदाहरण के लिए पुश अधिसूचनाएं
  • इंस्टॉल करने योग्य: ब्राउज़र-प्रदत्त संकेतों के माध्यम से होम स्क्रीन पर, उपयोगकर्ताओं को ऐप्स को "रखने" की अनुमति देने के लिए उन्हें ऐप स्टोर की परेशानी के बिना सबसे उपयोगी लगता है
  • लिंक करने योग्य: जिसका अर्थ है कि वे शून्य-घर्षण, शून्य-स्थापित, और साझा करना आसान है। यूआरएल की सामाजिक शक्ति मायने रखती है।

इन बिंदुओं से, लिंक करने योग्य मोबाइल एप्लिकेशन द्वारा मोबाइल गहरे लिंकिंग के रूप में ओपन वेब से आयातित पहली विशेषताओं में से एक था।

लेकिन विशेष उल्लेख कॉम्बो ताजा + इंस्टॉल करने योग्य है क्योंकि यह मूल विकल्पों पर एक मंच के रूप में वेब के मुख्य लाभों में से एक का प्रतिनिधित्व करता है । यहां इंस्टॉल करने योग्य अर्थ है कि यह आपकी होम स्क्रीन में दिखाई देता है। इसका मतलब यह नहीं है कि आपको डाउनलोडिंग और इंस्टॉलेशन चरणों को पारित करने की आवश्यकता है। ब्राउज़िंग करते समय आप एक यूआरएल खोलते हैं या सेवा खोजते हैं और यह किया जाता है: यह आपकी होम स्क्रीन में दिखाई देता है

ताजा तात्पर्य है कि एक नियमित वेब कैसे काम करता है, तत्काल लोड और निर्बाध अद्यतन प्रदान करता है। आपको YouTube के वेब से अपडेट इंस्टॉल करने के लिए नहीं कहा जाता है, इसे तैनात किया जाता है और अगली बार जब आप इसे देखते हैं तो आप इसका उपभोग करते हैं।

मैं शेष बिंदुओं के लाभों के बारे में बात नहीं कर रहा हूं क्योंकि आप मतभेदों के लिए पूछ रहे थे और, उदाहरण के लिए, पुन: सगाई कुछ मूल अनुप्रयोगों में पहले से ही पुश सेवाओं और अधिसूचनाओं के माध्यम से है और अब वेब अनुप्रयोगों को पकड़ लिया गया है।

अन्य संबंधित और महत्वपूर्ण सवाल यह है कि आपकी प्लेटफ़ॉर्म आपकी आवश्यकताओं के लिए अधिक उपयुक्त है। यदि आप विशेष हार्डवेयर क्षमताओं तक नहीं पहुंच रहे हैं, तो वेब पर्याप्त होना चाहिए और उस वेब को चुनना चाहिए जो आप बाजारों, स्वामित्व पारिस्थितिक तंत्र से मुक्त हैं और वैसे भी, आप कुछ ग्रेड की सर्वव्यापीता और अंतःक्रियाशीलता सुनिश्चित कर सकते हैं।

अंतिम नोट्स के रूप में, मैं आपको क्रोम के साथ मोबाइल से www.flipkart.com ब्राउज़ करने की सलाह देता हूं। यह बहुत बढ़िया है: कोई भी बग, चिकनी नेविगेशन, ऐप जैसी भावना नहीं। ऑफ़लाइन जाएं और यह काम करना जारी रखेगा। उस पोस्ट का वास्तव में असली दुनिया का उदाहरण। ऐप को होम स्क्रीन पर जोड़ें और अगली बार जब आप इसे खोलें, अनुभव भी बेहतर होगा।

आप फ़ायरफ़ॉक्स ओएस के साथ-साथ मानक वेब (अधिक या कम सफलता के साथ) के लिए अधिक प्लेटफार्म एपीआई लाने का एक उदाहरण देख सकते हैं।







firefox webkit screen-scraping headless-browser