Подтвердить что ты не робот

Python BeautifulSoup дает несколько тегов для findAll

Я ищу способ использования findAll для получения двух тегов в порядке их появления на странице.

В настоящее время у меня есть:

import requests
import BeautifulSoup

def get_soup(url):
    request = requests.get(url)
    page = request.text
    soup = BeautifulSoup(page)
    get_tags = soup.findAll('hr' and 'strong')
    for each in get_tags:
        print each

Если я использую это на странице с только "em" или "сильным" в нем, тогда он получит все те теги, если я буду использовать их с обоими, они получат "сильные" теги.

Есть ли способ сделать это? Моя главная задача - сохранить порядок, в котором найдены теги.

4b9b3361

Ответ 1

Вы можете передать список, чтобы найти теги hr или strong:

tags = soup.find_all(['hr', 'strong'])

Ответ 2

Используйте регулярные выражения:

import re
get_tags = soup.findAll(re.compile(r'(hr|strong)'))

Выражение r'(hr|strong)' найдет теги hr или теги strong.