[英]How i set an option in dropdown list is 'selected' using beauttifulsoup in python?
我想以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>
我想在第一个下拉列表中将第二个选项设置为“已选择”(其 ID 为“Stroke_Version”),当以 html 形式在相应的输入字段中显示文本文件内容时。 在 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>
...
您可以在所需的选项标签中添加selected
属性。
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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.