BeautifulSoup 试图获取选定的值来抓取 IMDB 但出现错误

我正在尝试使用 BeautifulSoup 从以下 HTML 中获取选定的值,但无法获取。


<select id="bySeason" tconst="tt0944947" class="current">

  <!--

  This ensures that we don't wind up accidentally marking two options

  (Unknown and the blank one) as selected.

  -->

  <option value="1">

    1

  </option>

  <!--

  This ensures that we don't wind up accidentally marking two options

  (Unknown and the blank one) as selected.

  -->

  <option selected="selected" value="8">

    2

  </option>

</select>

这就是我正在尝试但徒劳的。


season_container = page_html.find_all("select", class_="current")

print(season_container.find_all('option', selected=True))


慕的地10843
浏览 113回答 2
2回答

慕的地8271018

您可以通过选择使用来缩小搜索范围id。from bs4 import BeautifulSouphtml = """<select id="bySeason" tconst="tt0944947" class="current">&nbsp; <!--&nbsp; This ensures that we don't wind up accidentally marking two options&nbsp; (Unknown and the blank one) as selected.&nbsp; -->&nbsp; <option value="1">&nbsp; &nbsp; 1&nbsp; </option>&nbsp; <!--&nbsp; This ensures that we don't wind up accidentally marking two options&nbsp; (Unknown and the blank one) as selected.&nbsp; -->&nbsp; <option selected="selected" value="8">&nbsp; &nbsp; 2&nbsp; </option></select>"""soup = BeautifulSoup(html, "html.parser")selected_value = soup.find("select", {"id":"bySeason"}).find("option",selected=True)print(selected_value.get_text(strip=True))print("-------")print(selected_value["value"])输出:2-------8

慕码人2483693

你很亲密。season_container = page_html.find_all("select", class_="current")[0] # <- first ele.&nbsp;print(season_container.find_all('option', selected=True))第一行返回一个数组,因此您必须指定选择(大概)第一个元素。代码的另一部分很好。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python