繁体   English   中英

从下拉菜单中刮取所选值

[英]Scraping the selected value from a dropdown menu

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

我已经在选择,选项,选项值和选择的“”上尝试了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

我为您编写的代码现在需要做的就是每9个索引打印一条新行,您将在txt文件中获得该网站的所有年数。 别忘了安装我在代码中使用的库

  • 2019/2020
  • 2018/2019
  • 2017/2018
  • 2016/2017
  • 2015/2016
  • 等等

    1. 导入urllib.request
    2. 从bs4导入BeautifulSoup

>

url='https://superstats.dk/program?aar={}%2F{}'
html_doc = urllib.request.urlopen(url)
soup = BeautifulSoup(html_doc, "html.parser")

show_select = str(soup.find_all("select"))
file = open("test.txt", "w+") 

for everything in show_select :
    file.write(str(everything))
file.close()

file = open("test.txt", "r")
lines = file.readlines()
number_of_lines = len(lines)

placeholder = 0
each_line = lines[placeholder]

file2 = open("All numbers.txt", "w+")
while placeholder < number_of_lines:
    for number in each_line:
        if number in "0123456789" :
            file2.write(str(number))
            placeholder += 1
        if number == "/":
            file2.write(str(number))
            placeholder += 1            
        else:
            placeholder += 1
            pass

    file2.close()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM