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

La fonction GCP Cloud pour écrire des données dans BigQuery s'exécute avec succès, mais les données n'apparaissent pas dans la table BigQuery

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

Le shell POSIX (sh) redirige stderr vers stdout et capture stderr et stdout dans des variables