[英]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文件中获得该网站的所有年数。 别忘了安装我在代码中使用的库
等等
>
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.