Extraire une colonne spécifique avec BeautifulSoup

J'essaie d'extraire une colonne spécifique avec beautifulsoup. Le quatrième dans ce lien : https://livecapper.ru/bet365/event.php?id=4836898&t=1x2_ht et si le texte dans cette colonne est : - il effectuera un travail supplémentaire avec la seconde boucle for. j'ai essayé ça mais ça n'a pas marché pour moi

for t in soup.find_all("td:nth-of-type(4)",text="-", limit=1):
for g in soup.find_all("h1"):
game_name.append(g.get_text()) if g.get_text() not in game_name else game_name

J'ai aussi essayé ceci pour obtenir la quatrième colonne

for t in soup.find_all("td[4]",text="-", limit=1)


Solution du problème

Vous pouvez le faire en utilisant le sélecteur css comme suit :

from bs4 import BeautifulSoup
import requests
url = 'https://livecapper.ru/bet365/event.php?id=4836898&t=1x2_ht'
req = requests.get(url)
soup = BeautifulSoup(req.content, 'html.parser')
for tr in soup.select('.tablediv table tr td:nth-child(4)'):
print(tr.text)

Production:

3.750
4.000
3.750
4.000
4.000
4.000
4.000
4.333
4.000
4.333
-
4.000
-
4.000
3.750
3.600
3.200
3.250
3.250
3.250
3.400
3.400
3.500
-
2.750
2.875
2.875
-
2.875
3.000
3.100
3.100
3.200
3.200
3.250
3.250
3.250
3.100
3.250
3.400
3.500
3.600
3.600
3.750
3.750
-

Commentaires

Posts les plus consultés de ce blog

Erreur Symfony : "Une exception a été levée lors du rendu d'un modèle"

Détecter les appuis sur les touches fléchées en JavaScript

Une chaîne vide donne "Des erreurs ont été détectées dans les arguments de la ligne de commande, veuillez vous assurer que tous les arguments sont correctement définis"