python - 从下拉选项值 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]')
是[]
一个属性选择器。这会寻找带有属性的option
标签元素。value
如果有一个可以使用的父类/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]')
推荐阅读
- git - git add 多次而不提交
- python - 在python中对数据名称进行For循环
- kotlin - Kotlin 中的构造函数与参数
- c# - 在 EF Core 中禁用并发检查
- python-3.x - 有没有在 Julia 中使用 SQLAlchemy 的简单方法?
- elasticsearch - 用于百分位聚合值的 Elastic Search 存储桶脚本
- android - 第二个活动是空白的
- php - 变量失去引用,当被引用的变量后来引用另一个
- flutter - 如何在 Flutter 中更新 AnimatedList 中的数据
- android - 当我尝试显示我的 Json 响应(改造)时,每次在我的卡片视图中都会重复相同的元素