BeautifulSoup экстракт р, заголовок, ли - PullRequest
0 голосов
/ 14 марта 2020

Я работаю над небольшим сканером python и пытаюсь извлечь каждый текст, хранящийся в тегах p, h1, h2, h3, h4, h5, h6 и li.

Существует метод, который называется soup.find_all () но он ищет только один указанный атрибут c в соответствии с документацией .

Что будет наиболее эффективным для извлечения текста из этих тегов?

Вот что Я попробовал:

from bs4 import BeautifulSoup

VALID_TAGS = ['p', 'ul', 'li', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6']

def scrap(text):
    soup = BeautifulSoup(text, 'html.parser')
    for tag in soup.findAll(True):
        if tag.name in VALID_TAGS:
            ##stuck

1 Ответ

1 голос
/ 14 марта 2020

Не совсем уверен, что вы спрашиваете, но я думаю, это было бы ближе к этому:

from bs4 import BeautifulSoup

content = ...

soup = BeautifulSoup(content, "html.parser")

tag_types = ["p", "ul", "li", ...]

for tag_type in tag_types:
    for tag in soup.find_all(tag_type):
        print(tag.text)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...