मैं आइटम डेटा प्रदर्शित करने वाली साइट पर वेबपृष्ठों को पार्स कर रहा हूं। इन वस्तुओं में लगभग 20 फ़ील्ड हैं जो हो सकते हैं या नहीं हो सकते हैं - कहें: मूल्य, मात्रा, अंतिम खरीदा गया, उच्च, निम्न, आदिसुंदर सूप आदेशों की एक श्रृंखला को छोड़ने/छोड़ने का सुरुचिपूर्ण तरीका?
मैं वर्तमान में आदेशों की एक श्रृंखला का उपयोग कर रहा हूं; ब्याज के प्रत्येक अलग क्षेत्र की तलाश के लिए soup.find('div',{'class':SOME_FIELD_OF_INTEREST})
की लगभग 20 लाइनें। (कुछ dd
div
में हैं, span
,, और इतने पर, तो यह मुश्किल है सिर्फ एक soup.find_all('div')
आदेश करने के लिए।)
मेरा प्रश्न: क्या try
और except
सब कुछ इस तरह के देखने का कहना है कि कोड कर सकते हैं करने के लिए एक सुंदर तरीका है अधिक कॉम्पैक्ट या संक्षिप्त हो? अभी एक नमूना रेखा इस तरह दिखेगी:
try:
soup.find('div', {'id':'item-pic'}).img["src"]
except:
""
मैं एक पंक्ति में सब कुछ गठबंधन करने की उम्मीद कर रहा था। मुझे नहीं लगता कि मैं सिंटैक्टिक रूप से कोशिश कर सकता हूं: <line of code> except: <code>
, और मुझे यकीन नहीं है कि मैं वास्तव में कमांड चलाने के बिना try_command(soup.find('div',{'id':'item-pic'}).img["src"])
पर एक फ़ंक्शन कैसे लिखूंगा।
मुझे यह सुनना अच्छा लगेगा कि किसी के पास कोई सलाह है (इसमें शामिल है: "यह संभव नहीं है/व्यावहारिक, आगे बढ़ें")। :)
संपादित करें: थोड़ा सा बात करने के बाद, मुझे लगता है कि मैं देखना चाहता हूं कि इनलाइन अपवाद हैंडलिंग के लिए अच्छा अभ्यास क्या है, और यदि यह लेने का सही मार्ग है।
मैं तुम्हें एक में भाग खोज रहे हैं (जैसा कि
'NoneType' object has no attribute '__getitem__'
वास्तव में अपवाद आप को पकड़ने की कोशिश कर रहे हैं नहीं है, यह गुण का उपयोग करने के BeautifulSoup द्वारा इस्तेमाल किया वाक्य रचना का प्रतिफल है) पाठ, यह regexes के लिए एक नौकरी है। – eyquemक्या आप खूबसूरत सूप का उपयोग कर XPATH अभिव्यक्ति के बराबर चलाना चाहते हैं: '// div [@ id =" item-pic "]/img/@ src'? कृपया, अधिक उदाहरण प्रदान करें। क्या आपने [डॉक्स] पढ़ा है (http://www.crummy.com/software/BeautifulSoup/bs4/doc/#searching-the-tree)? कोशिश करें/छोड़कर 'यहां एक बुरा विचार जैसा लगता है। – jfs
मैं थोड़ा xPath और BeautifulSoup के बीच असंगतता याद मेरे सिर के ऊपर बंद ... lemme कोशिश अभी ... – binarysolo