首页 > 解决方案 > Beautifulsoup 是否可以选择不唯一的类

问题描述

对不起,又是我,但我无法弄清楚这个问题的解决方案。如何在“Zubereitung”网站上提取制剂或德语?因为类名用于许多类。我认为也许可以寻找一个类组合,这样我就可以选择名称为二的类中的所有类。

标签: pythonhtmlweb-scrapingbeautifulsoup

解决方案


您可以使用 CSS 选择器article:has(>h2:contains("Zubereitung")) > .ds-box

选择标签,其类ds-box位于标签下,该标签<article>包含带有文本的标题"Zubereitung"

例如:

import requests
from bs4 import BeautifulSoup


url = 'https://www.chefkoch.de/rezepte/1521151257327860/Schneemoussetorte-mit-Rhabarber.html'

soup = BeautifulSoup(requests.get(url).content, 'html.parser')
recipe = soup.select_one('article:has(>h2:contains("Zubereitung")) > .ds-box')

print(recipe.get_text(strip=True, separator='\n'))

印刷:

Eine Springform (26 cm) einfetten. Die Eier trennen. Den Backofen vorheizen (Umluft 150°C).
Die Butter mit 125 g Zucker, 1 Prise Salz und 1 Pck. Vanillezucker in einer Rührschüssel mit dem Handrührgerät cremig rühren. Die Eigelbe einzeln unterrühren. Mehl und Backpulver mischen und im Wechsel mit der Milch rasch unterrühren.
Die Hälfte des Teiges in die Form füllen und glatt streichen. Die Eiweiße steif schlagen und dabei 200 g Zucker langsam einrieseln lassen. Weiter schlagen, bis der Zucker sich aufgelöst hat. Die Hälfte des Eischnees auf den Teig in der Form streichen. 2 EL Mandelblättchen darüber streuen und den Tortenboden 25-30 Minuten backen. Abkühlen lassen, aus der Form lösen und völlig auskühlen lassen.
Mit der anderen Hälfte von Teig, Eischnee und Mandelblättchen ebenso verfahren. Diesen Boden vom der Springform lösen und wieder hinein legen.
In der Zwischenzeit ... 

... 等等。


推荐阅读