我需要使用BeautifulSoup从2个不同的span标签中获取文本

时间:2020-02-20 06:03:34

标签: python beautifulsoup

我正在尝试从以下代码中获取这些值,即开发人员和类型下的span文本

<div _ngcontent-sc18="" class="col-xl-6">
  <!-- -->
  <p _ngcontent-sc18="" class="mb-2">
    <strong _ngcontent-sc18="">
     Developer:
    </strong>
  <!-- -->
  <span _ngcontent-sc18="">
     Capy Games
  </span>
  </p>
  <!-- -->
  <!-- -->
  <p _ngcontent-sc18="" class="mb-2">
    <strong _ngcontent-sc18="">
     Genres:
    </strong>
    <!-- -->
    <span _ngcontent-sc18="">
     Action,
    </span>
    <span _ngcontent-sc18="">
     Platformer
    </span>
  </p>
</div>

如果只有一种流派,我可以很好地提取值,但是如果有两种,我只能弄清楚如何提取第一种。这是我到目前为止所拥有的

for y in gamesoup.find_all('p', class_= 'mb-2'):
    if y.strong.text == "Developer: ":
        devs.append(y.span.text)
    if "Genre" in y.strong.text:
        genres.append(y.span.text)

我该怎么做才能将“流派”下的两个值都提取出来?

谢谢!

1 个答案:

答案 0 :(得分:0)

在流派的find_all('span')语句中使用if

for y in gamesoup.find_all('p', class_= 'mb-2'):
    if y.strong.text == "Developer: ":
        devs.append(y.span.text)
    if "Genre" in y.strong.text:
        for genre in y.find_all('span'):
            genres.append(genre.text)