Je cherche un moyen d'utiliser findAll pour obtenir deux balises, dans l'ordre où elles apparaissent sur la page.
Actuellement, j'ai:
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
Si j'utilise cela sur une page avec seulement 'em' ou 'strong' dedans, cela m'obtiendra toutes ces balises, si j'utilise sur une seule avec les deux, il obtiendra des balises 'fortes'.
Y a-t-il un moyen de faire cela? Ma principale préoccupation est de préserver l'ordre dans lequel les balises sont trouvées.
Vous pouvez passer une liste , pour trouver les balises hr
ou strong
:
tags = soup.find_all(['hr', 'strong'])
Utilisez des expressions régulières:
import re
get_tags = soup.findAll(re.compile(r'(hr|strong)'))
L'expression r'(hr|strong)'
trouvera soit les balises hr
, soit les balises strong
.