繁体   English   中英

我如何在python中使用beauttifulsoup在下拉列表中设置一个选项被“选中”?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM