इनपुट HTML में एक कॉलन से निपटना:BeautifulSoup CSS चयनकर्ताओं
<div style="display: flex">
<div class="half" style="font-size: 0.8em;width: 33%;"> apple </div>
<div class="half" style="font-size: 0.8em;text-align: center;width: 28%;"> peach </div>
<div class="half" style="font-size: 0.8em;text-align: right;width: 33%;" title="nofruit"> cucumber </div>
</div>
वांछित आउटपुट: सभी div
तत्वों बिल्कुल <div style="display: flex">
के तहत।
मैं के साथ माता-पिता div
का पता लगाने की कोशिश कर रहा हूँ एक CSS selector:
>>> soup.select('div[style="display: flex"]')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/user/.virtualenvs/so/lib/python2.7/site-packages/bs4/element.py", line 1400, in select
'Only the following pseudo-classes are implemented: nth-of-type.')
NotImplementedError: Only the following pseudo-classes are implemented: nth-of-type.
यह एक छद्म वर्ग के रूप में बृहदान्त्र व्याख्या करने के लिए BeautifulSoup
तरह की कोशिश करता दिखता है:
div[style="display: flex"]
यह एक त्रुटि फेंकता वाक्य - विन्यास।
मैं सलाह Handling a colon in an element ID in a CSS selector पर सुझाव का पालन करने की कोशिश की है, लेकिन यह अभी भी त्रुटियों फेंकता है:
>>> soup.select('div[style="display\: flex"]')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/user/.virtualenvs/so/lib/python2.7/site-packages/bs4/element.py", line 1400, in select
'Only the following pseudo-classes are implemented: nth-of-type.')
NotImplementedError: Only the following pseudo-classes are implemented: nth-of-type.
>>> soup.select('div[style="display\3A flex"]')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/user/.virtualenvs/so/lib/python2.7/site-packages/bs4/element.py", line 1426, in select
'Unsupported or invalid CSS selector: "%s"' % token)
ValueError: Unsupported or invalid CSS selector: "div[style="displayA"
प्रश्न:
क्या उपयोग करने के लिए सही तरीका क्या है/में एक कॉलन से बचने BeautifulSoup
सीएसएस चयनकर्ताओं में विशेषता मान?
ध्यान दें कि मैं इसे एक आंशिक विशेषता मैच के साथ वैकल्पिक हल कर सकते हैं:
soup.select("div[style$=flex]")
या एक find_all()
साथ,:
soup.find_all("div", style="display: flex")
यह भी ध्यान रखें मैं समझता हूँ कि कि style
का उपयोग कर तत्वों का पता लगाने की एक अच्छी स्थान तकनीक होने से बहुत दूर है, लेकिन सवाल स्वयं सामान्य होने के लिए है और प्रदान किया गया HTML सिर्फ एक उदाहरण है।
मुझे लगता है कि आपने दो बैकस्लेश भी कोशिश की है? 'soup.select ('div [style =" display \\: flex "]') ' –
@ जोशक्रोजियर खुश नए साल, yup, और कच्चे तारों और नियमित तारों के साथ विभिन्न संयोजन। धन्यवाद। अभी भी लगता है कि मैं सिर्फ smth याद कर रहा हूँ। – alecxe
... wat। टूटी हुई बात करो। – BoltClock