python - Parse HTML and look for multiple classes and tags - most elegant way? -


वर्तमान में मेरे पास निम्न कोड है:

  author_name = soup.find (सच है, {{ "Class": ["लेखक", "लेखक-नाम"]}) अगर लेखक_नाम कुछ नहीं है: प्रिंट author_name.text अन्य: author_name = soup.find (rel = "author") अगर author_name नहीं है कोई नहीं: print author_name पाठ अन्य: प्रिंट "कोई लेखक नहीं मिला"   

मैं एक लेख के लेखक को ढूँढ़ने की कोशिश कर रहा हूं। इस प्रकार मैं वर्ग = "लेखक" , वर्ग = "लेखक-नाम" , आदि ... या rel = author जैसे प्रविष्टियों के लिए कक्षाएं देखता / कोड> और आगे आगे अगर मैं इसे जिस तरह से करता हूं, तो यह अलग-अलग अगर और else स्टेटमेंट में होता है यह मेरे लिए बहुत सुंदर नहीं लगता है, भले ही मैंने हाल ही में कोडन शुरू किया। क्या आप लोग मेरी मदद कर सकते हैं कि यह कैसे अधिक सुंदर ढंग से करें?

आप उपयोग कर सकते हैं; ये आपको एक स्ट्रिंग में एकाधिक चयन मानदंड निर्दिष्ट करने देते हैं:

  सूप। चयन ('। लेखक, .author-name, [rel = "author"]')   

यह एक सूची का उत्पादन करता है, पाशन आपको अपनी पसन्द को सबसे ज्यादा ढूंढने का विकल्प देगा, या आप इसे पाने के लिए केवल next () फ़ंक्शन का उपयोग कर सकते हैं पहले:

  सूप में चयनकर्ता के लिए। चयन ('। लेखक,। लेखक-नाम, [rel = "author"]'): यदि उम्मीदवार। Text: author = candidate.text break Else: प्रिंट "कोई लेखक नहीं मिला"   

सूप। चयन () कॉल में दस्तावेजों के क्रम में मिलान करने वाले किसी तत्व को शामिल किया जाएगा, इसलिए उपरोक्त पहली बार मिलेगा योग्यता तत्व चाहे कितना भी योग्य हो; यह rel = "author" के साथ टैग पर .author-name पसंद नहीं करेगा, अगर बाद में दस्तावेज में पाया जाता है। < / html>

Comments

Popular posts from this blog

java - ImportError: No module named py4j.java_gateway -

python - Receiving "KeyError" after decoding json result from url -

.net - Creating a new Queue Manager and Queue in Websphere MQ (using C#) -