2011-03-06 14 views
15

मैं पाइथन के मशीनीकरण मॉड्यूल का उपयोग करके साइट पर नेविगेट कर रहा हूं और अगले पृष्ठ के लिए जावास्क्रिप्ट लिंक पर क्लिक करने में परेशानी है। मैंने कुछ पढ़ा और लोगों ने सुझाव दिया कि मुझे अजगर-स्पाइडरमोनकी और डोमफॉर्म चाहिए। मैं उन्हें स्थापित करने में कामयाब रहा, मुझे वास्तव में लिंक पर क्लिक करने के लिए वाक्यविन्यास के बारे में निश्चित नहीं है।पायथन के भीतर जावास्क्रिप्ट लिंक पर क्लिक करें?

मैं के रूप में पृष्ठ पर कोड की पहचान कर सकते हैं:

<a href="javascript:__doPostBack('ctl00$MainContent$gvSearchResults','Page$2')">2</a> 

किसी को भी उस पर क्लिक करने के लिए कैसे पता है? या अगर शायद एक और उपकरण है।

धन्यवाद

+0

क्या आप इसे सामान्य रूप से क्लिक नहीं करेंगे? यदि पाइथन-स्पाइडरमोनकी और डोमफॉर्म कोई अच्छा हैं तो यह सिर्फ काम करेगा। –

+0

मैं कोशिश कर रहा था कि काम करने वाले उदाहरण ढूंढना वाकई मुश्किल है। मुझे वास्तव में यकीन नहीं है कि यह कैसे करें। उदाहरण में मुझे मिले अधिकांश आदेश या तो काम नहीं करते थे। मैंने जावास्क्रिप्ट को संभालने की उनकी क्षमता के लिए इन उपकरणों का सुझाव देने वाले बहुत से लोगों को पढ़ा है लेकिन संकुल का उपयोग करना बहुत सीधी नहीं है। – Lostsoul

+0

यदि मुझे जावास्क्रिप्ट से निपटने की ज़रूरत है, तो मैं मशीनीकरण (या टवील, जिसे मैं पसंद करता हूं) से बचता हूं और इसके बजाय कुछ [सेलेनियम] (http://seleniumhq.org) या [स्प्लिंटर] (http: //splinter.cobrateam) का उपयोग करता हूं। जानकारी) (जो दोनों के बीच मेरा पसंदीदा है)। – brandizzi

उत्तर

6

मैं मुख्य रूप से इन उपयोग मामलों के लिए ज्योथन के तहत HtmlUnit का उपयोग करता हूं। इसके अलावा मैंने विषय पर एक साधारण लेख प्रकाशित किया: Web Scraping Ajax and Javascript sites

+0

धन्यवाद, मैं अभी इस पर देख रहा हूं। ईमानदार होने के लिए, मैं ओओ प्रोग्रामिंग के लिए कुछ नया हूं और अभी भी जावा को समझने की कोशिश कर रहा हूं। मैं सभी जावा समाधान से परहेज कर रहा था क्योंकि अगर चीजें तोड़ती हैं तो मुझे नहीं पता था कि मैं कितनी अच्छी तरह से समस्या निवारण कर सकता हूं। मैं पाइथन के साथ बेहतर महसूस करता हूं, लेकिन यह समाधान वास्तव में अच्छा दिखता है, ऐसा लगता है कि मैं पाइथन स्क्रिप्ट लिख सकता हूं और आगे और आगे जाने के लिए चर बनाने के लिए जावा स्क्रिप्ट को कॉल कर सकता हूं। आपकी साइट चट्टानों और htmlunit के दस्तावेज़ीकरण/नमूने का एक अच्छा हिस्सा प्रतीत होता है। – Lostsoul

+0

धन्यवाद Lostsoul। मुझे लगता है कि जावा में ढांचे के साथ पायथन या रूबी (जेआरबीई) जैसी भाषाओं के बीच संयोजन बहुत सारी शक्ति देता है। जावा में कुछ अधिक विकसित ढांचे हैं लेकिन वे कई बार जटिल तरीके से उपयोग करने के लिए जटिल हैं। –

0

कैसे __doPostBack('ctl00$MainContent$gvSearchResults','Page$'+pageid); बुला (जावास्क्रिप्ट विधि, अजगर-Spidermonkey के माध्यम से)

+0

आपके त्वरित उत्तर n00b32 के लिए बहुत बहुत धन्यवाद। मैं इस spidermonkey के लिए बहुत नया हूँ और अभी भी थोड़ा उलझन में हूँ। मैं यह कैसे करूँगा? स्पाइडरमोनकी के लिए मुझे बहुत अधिक दस्तावेज या नमूना स्क्रिप्ट नहीं मिल सकतीं। मैं मूल रूप से उस बिंदु पर हूं जहां मैंने मशीनीकरण और सुंदरसूप आयात किया है और एक चर (सूप 1) है जो पृष्ठ में सभी टूटी हुई एचटीएमएल को ठीक करता है। मैं उपरोक्त लिंक को एक चर में प्राप्त कर सकता हूं लेकिन यह सुनिश्चित नहीं करता कि इसके बाद क्या करना है, मैं अभी भी बहुत उलझन में हूं। उदाहरण प्राप्त करना अच्छा होगा या अगर आप मुझे कहां सीख सकते हैं। एक बार फिर धन्यवाद! – Lostsoul

2

के बजाय साथ अजगर-Spidermonkey कोशिश webkit's qt python bindings संघर्ष के बारे में।

यहां एक full example to execute JavaScript and extract the final HTML है।

+0

यह बहुत दिलचस्प लग रहा है। मैंने बस इसे स्थापित किया और इसके साथ खेलेंगे। मुझे एक नमूना स्क्रिप्ट मिली और वेबकिट का उपयोग करने पर ज्यादा दस्तावेज नहीं मिला। – Lostsoul

+1

एक उदाहरण जोड़ा गया। हाँ दुर्भाग्यवश इसके बारे में कई उदाहरण ढूंढना मुश्किल है। ज्यादातर लोग सी ++ के माध्यम से क्यूटी/वेबकिट का उपयोग करते हैं। – hoju