如果 HTML 代码中未指示所选元素,如何使用 BeautifulSoup 从 HTML 代码中的 <select> 获取所选选项?

问题描述 投票:0回答:1

我正在尝试使用 BeautifulSoup 从 HTML 中的元素获取选定的选项,但我有一个问题,源 html 代码不指示代码中的选定元素。来源看起来像这样:

<select class="class_name" name="Type" style="max-width: 170px; min-width: 135px;">
    <option value="Value1">Value 1</option>
    <option value="Value2">Value 2</option>
    <option value="Value3">Value 3</option>
    <option value="Value4">Value 4</option>
</select>

同时,这是元素在浏览器中的外观:

在此输入图片描述

所以当我尝试

soup.find('select', class_="class_name")
时,我只得到一个选项列表,但没有选择一个:

<select class="class_name" name="Type" style="max-width: 170px; min-width: 135px;"><option value="Value1">Value 1</option><option value="Value2">Value 2</option><option value="Value3">Value 3</option><option value="Value4">Value 4</option></select>

在这种情况下什么可以帮助我?

python html parsing beautifulsoup
1个回答
0
投票

如果没有像

selected
这样的指标,就没有机会选择正确的。

如果有指示:

soup.select_one('select option[selected]').get('value')
示例
from bs4 import BeautifulSoup

html = '''
<select class="class_name" name="Type" style="max-width: 170px; min-width: 135px;">
    <option value="Value1">Value 1</option>
    <option value="Value2">Value 2</option>
    <option value="Value3" selected>Value 3</option>
    <option value="Value4">Value 4</option>
</select>
'''

soup = BeautifulSoup(html)

soup.select_one('select option[selected]').get('value')
© www.soinside.com 2019 - 2024. All rights reserved.