[英]Extract option values from a dropdown list using BeautifulSoup - Python
[英]Scraping from dropdown option value Python BeautifulSoup
我尝试使用 BeautifulSoup 的输入下拉菜单从网络上抓取数据
这是价值下拉
<selected name="try">
<option value="G1">1</option>
<option value="G2">2</option>
</selected>
我像这样尝试
soup = BeautifulSoup(url, 'html.parser')
soup['selected'] = 'G1'
data = soup.findAll("table", {"style": "font-size:14px"})
print(data)
它会在每个提交下拉列表中获取带有<table>
标签的数据
但它只出现在主页的<table>
中,我如何从每个下拉列表中获取数据?
尝试使用属性CSS 选择器
soup.select('option[value]')
[]
是一个属性选择器。 这将查找具有value
属性的option
标记元素。 如果有一个可以使用的父类/id,在页面上有更多可用下拉菜单时会很有帮助。
items = soup.select('option[value]')
values = [item.get('value') for item in items]
textValues = [item.text for item in items]
将父name
属性限制为一个下拉列表(希望 - 您需要测试并查看是否需要进一步限制)。 与后代组合器一起使用:
items = soup.select('[name=try] option[value]')
您仍然继续使用findAll()
和find()
来完成您的工作。
from bs4 import BeautifulSoup
html = """
<table style="font-size:14px">
<selected name="try">
<option value="G1">1</option>
<option value="G2">2</option>
</selected>
</table>
"""
soup = BeautifulSoup(html,"lxml")
option = soup.find("selected",{"name":"try"}).findAll("option")
option_ = soup.find("table", {"style": "font-size:14px"}).findAll("option")
print(option)
print(option_)
#[<option value="G1">1</option>, <option value="G2">2</option>]
#[<option value="G1">1</option>, <option value="G2">2</option>]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.