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
Enregistrer un commentaire