首页 > 解决方案 > 返回

知道以前的
美丽的汤 - Python3

问题描述

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

标签: pythonpython-3.xbeautifulsoup

解决方案


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

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

推荐阅读