简体   繁体   English

加载使用 BeautifulSoup 选择的下拉框的页面

[英]Loading a page with drop-down box selected using BeautifulSoup

I'm trying to manipulate drop-down boxes with BeautifulSoup (which I'm fairly new to) and I'm having trouble figuring it out.我正在尝试使用 BeautifulSoup(我对它很陌生)操作下拉框,但我无法弄清楚。 I want to scrape the data that is shown after the drop-down boxes are selected.我想抓取选择下拉框后显示的数据。 Is there any way to load a page via BeautifulSoup with drop-downs already selected?有没有办法通过已经选择了下拉菜单的 BeautifulSoup 加载页面? Here is the html of the first drop-down:这是第一个下拉列表的 html:

<select class="print--hide" id="Year" data-reactid="202">
    <option selected="" value="" data-reactid="203">Year</option>
    <option value="2020">2020</option>
    <option value="2019">2019</option>
    <option value="2018">2018</option>
    <option value="2017">2017</option>
    <option value="2016">2016</option>
    <option value="2015">2015</option>
    <option value="2014">2014</option>
    <option value="2013">2013</option>
    <option value="2012">2012</option>
    <option value="2011">2011</option>
    <option value="2010">2010</option>
    <option value="2009">2009</option>
    <option value="2008">2008</option>
    <option value="2007">2007</option>
    <option value="2006">2006</option>
    <option value="2005">2005</option>
    <option value="2004">2004</option>
    <option value="2003">2003</option>
    <option value="2002">2002</option>
    <option value="2001">2001</option>
    <option value="2000">2000</option>
    <option value="1999">1999</option>
    <option value="1998">1998</option>
    <option value="1997">1997</option>
    <option value="1996">1996</option>
    <option value="1995">1995</option>
    <option value="1994">1994</option>
    <option value="1993">1993</option>
    <option value="1992">1992</option>
    <option value="1991">1991</option>
    <option value="1990">1990</option>
    <option value="1989">1989</option>
    <option value="1988">1988</option>
    <option value="1987">1987</option>
    <option value="1986">1986</option>
    <option value="1985">1985</option>
    <option value="1984">1984</option>
    <option value="1983">1983</option>
    <option value="1982">1982</option>
    <option value="1981">1981</option>
    <option value="1967">1967</option>
</select>
from bs4 import BeautifulSoup
html = """<select class="print--hide" id="Year" data-reactid="202">
    <option selected="" value="" data-reactid="203">Year</option>
    <option value="2020">2020</option>
    <option value="2019">2019</option>
    <option value="2018">2018</option>
    <option value="2017">2017</option>
    <option value="2016">2016</option>
    <option value="2015">2015</option>
    <option value="2014">2014</option>
    <option value="2013">2013</option>
    <option value="2012">2012</option>
    <option value="2011">2011</option>
    <option value="2010">2010</option>
    <option value="2009">2009</option>
    <option value="2008">2008</option>
    <option value="2007">2007</option>
    <option value="2006">2006</option>
    <option value="2005">2005</option>
    <option value="2004">2004</option>
    <option value="2003">2003</option>
    <option value="2002">2002</option>
    <option value="2001">2001</option>
    <option value="2000">2000</option>
    <option value="1999">1999</option>
    <option value="1998">1998</option>
    <option value="1997">1997</option>
    <option value="1996">1996</option>
    <option value="1995">1995</option>
    <option value="1994">1994</option>
    <option value="1993">1993</option>
    <option value="1992">1992</option>
    <option value="1991">1991</option>
    <option value="1990">1990</option>
    <option value="1989">1989</option>
    <option value="1988">1988</option>
    <option value="1987">1987</option>
    <option value="1986">1986</option>
    <option value="1985">1985</option>
    <option value="1984">1984</option>
    <option value="1983">1983</option>
    <option value="1982">1982</option>
    <option value="1981">1981</option>
    <option value="1967">1967</option>
</select>
"""


soup = BeautifulSoup(html, 'html.parser')

items = soup.find('select', {'print--hide'}).text

print(items)

Output:输出:

2020
2019
2018
2017
2016
2015
2014
2013
2012
2011
2010
2009
2008
2007
2006
2005
2004
2003
2002
2001
2000
1999
1998
1997
1996
1995
1994
1993
1992
1991
1990
1989
1988
1987
1986
1985
1984
1983
1982
1981
1967

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

相关问题 如何使用beautifulsoup在下拉列表中获取所选值? - How can I get the selected value in a drop-down list using beautifulsoup? 从下拉框中选择其他项时,更改选项卡窗口小部件的currentIndex() - Changing the currentIndex() of a tab widget when a different item is selected from a drop-down box 从beautifulsoup4的下拉列表中选择值 - select value from drop-down list in beautifulsoup4 如何等待直到使用Selenium Python选择了特定的下拉菜单? - How can I wait until a specific drop-down menu selected using Selenium Python? Python-Selenium:在下拉框中不可单击元素 - Python-Selenium: Element is not clickable in drop-down box Google App Engine的HTML下拉框 - HTML drop-down box with Google App Engine 如果在 Python 中选择了下拉列表中的项目,则提示用户输入 - Prompt user for input if item on drop-down list is selected in Python 我如何使用下拉菜单来抓取网页? (使用硒) - How do i XPATH or CSS scrape a Web-Page by utilizing the drop-down menu? (Using Selenium) 使用selenium python从下拉选项中选择一个值 - Selecting a value from a drop-down option using selenium python 使用网格中的单元格作为按钮和下拉列表 - using cells in grid as buttons and drop-down list
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM