我正在尝试从网页的下拉菜单中抓取所选值。如何将抓取范围缩小到正确的水平?

我已经尝试过在select,option,option值和selected“”上使用find&find_all进行多种组合。

我想在此html代码中选择““>后获取值:

<select name="aar"><option value="2019/2020">2019/2020</option>
     <option value="2018/2019" selected="">2018/2019</option><option
     value="2017/2018">2017/2018</option><option


我想要2018/2019作为结果

我当前的代码:

from bs4 import BeautifulSoup
for i in range(2018,2019):
    url='https://superstats.dk/program?aar={}%2F{}'.format(i,i+1)
    html_doc = requests.get(url)
    soup = BeautifulSoup(html_doc.content, "lxml")
    aar = soup.find_all("select")
    print(aar)

最佳答案

使用Css选择器通过attr selected获取值

from bs4 import BeautifulSoup
for i in range(2018,2019):
    url='https://superstats.dk/program?aar={}%2F{}'.format(i,i+1)
    html_doc = requests.get(url)
    soup = BeautifulSoup(html_doc.content, "lxml")
    optionval = soup.select_one('option[selected]')['value']
    print(optionval)


输出:


  2018/2019

关于python - 从下拉菜单中刮取所选值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57046432/

10-09 04:08