如何在下拉列表中设置选项是使用python中的beauttifulsoup“选中”的?
我想以html格式显示文本文件内容如何在下拉列表中设置选项是使用python中的beauttifulsoup“选中”的?,python,beautifulsoup,Python,Beautifulsoup,我想以html格式显示文本文件内容 <select id="Stroke_Version" onchange="" class="input_style cylconst" name="stroke_ver"> <option value="2S" >2S</option> <option value="4S" >4S</option> </select> <select id="engine_builder"
<select id="Stroke_Version" onchange="" class="input_style cylconst" name="stroke_ver">
<option value="2S" >2S</option>
<option value="4S" >4S</option>
</select>
<select id="engine_builder" class="input_style" name="engine_build">
<option value="">------------Select------------</option>
<option value="ACECNV">ACECNV (ACEC N.V)</option>
<option value="ADRIAD">ADRIAD (Adria Diesel D.D.)</option>
</select>
我想将第一个下拉列表中的第二个选项设置为“selected”,当以html形式在相应的输入字段中显示文本文件内容时,该选项的id为“Stroke_Version”。这是如何在python中使用beautifulsoup实现的
例如:
<select id="Stroke_Version" onchange="" class="input_style cylconst" name="stroke_ver">
<option value="2S" >2S</option>
<option value="4S" selected>4S</option>
</select>
我想不出什么好办法。这里有一个例子供你参考
from simplified_scrapy.simplified_doc import SimplifiedDoc
html = '''
<select id="Stroke_Version" onchange="" class="input_style cylconst" name="stroke_ver">
<option value="2S" >2S</option>
<option value="4S" >4S</option>
</select>
<select id="engine_builder" class="input_style" name="engine_build">
<option value="">------------Select------------</option>
<option value="ACECNV">ACECNV (ACEC N.V)</option>
<option value="ADRIAD">ADRIAD (Adria Diesel D.D.)</option>
</select>
'''
doc = SimplifiedDoc(html)
option = doc.select('select#Stroke_Version').select('option@value=4S') # Get the option
index = option.outerHtml.find('>') # Get insertion location
html = doc.html[0:option._start+index]+' selected'+doc.html[option._start+index:] # Concatenate string
print (html)
结果:
<select id="Stroke_Version" onchange="" class="input_style cylconst" name="stroke_ver">
<option value="2S">2S</option>
<option value="4S" selected>4S</option>
</select>
...
我想不出什么好办法。这里有一个例子供你参考
from simplified_scrapy.simplified_doc import SimplifiedDoc
html = '''
<select id="Stroke_Version" onchange="" class="input_style cylconst" name="stroke_ver">
<option value="2S" >2S</option>
<option value="4S" >4S</option>
</select>
<select id="engine_builder" class="input_style" name="engine_build">
<option value="">------------Select------------</option>
<option value="ACECNV">ACECNV (ACEC N.V)</option>
<option value="ADRIAD">ADRIAD (Adria Diesel D.D.)</option>
</select>
'''
doc = SimplifiedDoc(html)
option = doc.select('select#Stroke_Version').select('option@value=4S') # Get the option
index = option.outerHtml.find('>') # Get insertion location
html = doc.html[0:option._start+index]+' selected'+doc.html[option._start+index:] # Concatenate string
print (html)
结果:
<select id="Stroke_Version" onchange="" class="input_style cylconst" name="stroke_ver">
<option value="2S">2S</option>
<option value="4S" selected>4S</option>
</select>
...
可以在所需的选项标记中添加选定属性
from bs4 import BeautifulSoup
# from your soup get option tag in which you want to add selected using xpath or id
soup = BeautifulSoup('<option value="4S" >4S</option>')
tag = soup.option
tag["selected"] = None
print(tag)
可以在所需的选项标记中添加选定属性
from bs4 import BeautifulSoup
# from your soup get option tag in which you want to add selected using xpath or id
soup = BeautifulSoup('<option value="4S" >4S</option>')
tag = soup.option
tag["selected"] = None
print(tag)
可能有帮助这个可能有帮助