【问题标题】:Return <dd> knowing the previous <dt> beautiful soup - Python3返回 <dd> 知乎之前的 <dt> 美汤——Python3
【发布时间】:2018-08-14 02:28:45
【问题描述】:

我两天前开始使用 BeautifulSoup4。 我想知道前一个标签(&lt;dt&gt;)的&lt;dd&gt;。 我试图从https://www.animeclick.it/anime/2683/yojouhan-shinwa-taikei 获取剧集数(&lt;dt&gt;Episodi&lt;/dt&gt;)等,但由于它们不是静态的(例如,有时我想要的标签不是每次第三个标签)我想知道如何获得它。

【问题讨论】:

  • 请发布您目前尝试过的代码。
  • 事实是我不知道该怎么做。这是我的问题:我应该尝试什么?

标签: python python-3.x beautifulsoup


【解决方案1】:

在这种情况下,您可以使用 python 的zip() 方法将&lt;dt&gt;&lt;dd&gt; 标签压缩在一起。如果&lt;dt&gt; 标签将包含文本Episodi 你知道下一个&lt;dd&gt; 标签包含剧集数:

import requests
from bs4 import BeautifulSoup

r = requests.get('https://www.animeclick.it/anime/2683/yojouhan-shinwa-taikei')
soup = BeautifulSoup(r.text, 'lxml')

for dt, dd in zip(soup.select('#dettagli dl > dt'),
                  soup.select('#dettagli dl > dd')):
    if 'Episodi' in dt.text.strip():
        print('Number of episodes:', dd.text.strip())
        break

打印:

Number of episodes: 11

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-30
    相关资源
    最近更新 更多