Неправильный текст извлекается с помощью beautifulsoup - PullRequest
0 голосов
/ 07 августа 2020

Я пытаюсь извлечь текст с помощью beautifulsoup, но всякий раз, когда я определяю div и class, я получаю неправильный текст.

Мне нужно извлечь из этой страницы , и я хочу чтобы получить только эту деталь введите описание изображения здесь

Это мой код, и я не знаю, что делаю неправильно.

request = Request("https://www.frag-team-clean.de/de/startseite/waschen/wie-entfernst-du-schweissflecken.html")
soup.find('div', {'class':'text section'}).get_text() 

Ответы [ 2 ]

1 голос
/ 07 августа 2020

import requests
from bs4 import BeautifulSoup

res = requests.get("https://www.frag-team-clean.de/de/startseite/waschen/wie-entfernst-du-schweissflecken.html")

soup = BeautifulSoup(res.text, "html.parser")
title = soup.find("div", class_="title title__style--salmon section").get_text(strip=True)
text_section = soup.find("div", class_="text section")
para = text_section.find("p").get_text()
lis = [i.get_text(strip=True) for i in text_section.find_all('li')]

print(title)
print("---" * 10)
print(para)
print("---" * 10)
print("\n".join(lis))

Вывод:

Was sind die einzelnen Schritte, um Schweißflecken zu entfernen?
------------------------------
Wenn du die folgenden Schritte beachtest, kriegst du Schweißflecken gut raus:
------------------------------
Stelle sicher, dass das Oberteil waschbar ist.
Wähle Waschmittel wie zum BeispielSpee Color GeloderPersil Universal Kraft-Gelund Fleckentferner.
Reibe das Waschmittel auf den Fleck oder lasse das Oberteil bei hartnäckigen Flecken einweichen.
Wasche es bei der höchstmöglichen Temperatur.
Prüfe, ob der Fleck weg ist. Falls nicht, wiederhole die Schritte.
1 голос
/ 07 августа 2020

Попробуйте:

import requests
import bs4

req = requests.get("https://www.frag-team-clean.de/de/startseite/waschen/wie-entfernst-du-schweissflecken.html")

soup = bs4.BeautifulSoup(req.text, "lxml")
print(soup.find("div", {"class": "title__base atomic-width-control--component"}).text.strip() \
 + soup.find("div", {"class": "text section"}).text.strip())
...