首页 > 解决方案 > 从下拉选项值 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>在主页上,如何从每个下拉列表中获取数据?

标签: pythonpython-3.xweb-scrapingbeautifulsoup

解决方案


尝试属性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]')

推荐阅读