2009-04-24 13 views
5

पायथन का उपयोग करके, मैं http://utahcritseries.com/RawResults.aspx पर मानों को पढ़ने की कोशिश कर रहा हूं। मैं पेज को ठीक से पढ़ सकता हूं, लेकिन अन्य वर्षों से डेटा देखने के लिए वर्ष कॉम्बो बॉक्स के मूल्य को बदलने में कठिनाई हो रही है। मैं 2002 के डिफ़ॉल्ट के अलावा अन्य वर्षों के लिए डेटा कैसे पढ़ सकता हूं?पायथन-एएसपीनेट से डेटा प्राप्त करना AJAX एप्लिकेशन

पृष्ठ कॉम्बो बॉक्स बदल जाने के बाद पृष्ठ एक HTTP पोस्ट कर रहा प्रतीत होता है। नियंत्रण का नाम ct100 $ ContentPlaceHolder1 $ ddlSeries है। मैं urllib.urlencode (postdata) का उपयोग करके इस नियंत्रण के लिए एक मान सेट करने का प्रयास करता हूं, लेकिन मुझे कुछ गलत करना होगा-पृष्ठ पर डेटा बदल नहीं रहा है। क्या यह पायथन में किया जा सकता है?

यदि संभव हो तो मैं सेलेनियम का उपयोग नहीं करना चाहूंगा।

मैं (stackoverflow उपयोगकर्ता DBR से) इस तरह कोड का उपयोग किया गया है

import urllib 

postdata = {'ctl00$ContentPlaceHolder1$ddlSeries': 9} 

src = urllib.urlopen(
    "http://utahcritseries.com/RawResults.aspx", 
    data = urllib.urlencode(postdata) 
).read() 

print src 

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

उत्तर

3

उपयोग उत्कृष्ट mechanize पुस्तकालय:

from mechanize import Browser 

b = Browser() 
b.open("http://utahcritseries.com/RawResults.aspx") 
b.select_form(nr=0) 

year = b.form.find_control(type='select') 
year.get(label='2005').selected = True 

src = b.submit().read() 
print src 

मशीनीकरण PyPI पर उपलब्ध है: easy_install mechanize

+0

धन्यवाद! यह बॉक्स के ठीक बाहर काम किया! मैं पाइथन और मशीनीकरण दोनों के लिए नया हूं - मुझे यकीन नहीं था कि इसके लिए कहां पढ़ा जाए। बहुत बहुत धन्यवाद! –

+0

यदि आपको HTML को पार्स करने की आवश्यकता है तो आपको सुंदर सूप लाइब्रेरी को देखना चाहिए। मशीनीकरण + सुंदर सूप स्क्रीन स्क्रैपिंग के लिए बहुत ही भयानक है। http://www.crummy.com/software/BeautifulSoup/ – codeape

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