Hermosa sopa para extraer pares clave-valor de data-op-info.
El código a continuación no presenta errores pero no está completo. A partir de este punto, intento obtener solo todos los valores ‘fullgame’ en un dataframe.
import json
from bs4 import BeautifulSoup
import urllib.request
source = urllib.request.urlopen('https://www.oddsshark.com/nfl/odds').read()
soup = BeautifulSoup(source, 'html.parser')
results = soup.find_all(class_ = "op-item op-spread op-opening")
for result in (results):
print(json.loads(result['data-op-info']).items())
Utilicé print al final ya que estaba tratando de extraer solo el valor de línea y verlo.
Tenga en cuenta que hay una pregunta similar en este sitio, pero la solución solo funciona para un div. Fallará si la variable tiene múltiples divs.
https://stackoverflow.com/questions/64897809/how-to-parse-information-between-on-web-page-using-beautifulsoup
davy.ai
Para obtener solamente los valores de “fullgame” en un dataframe, se puede hacer lo siguiente:
Aquí tienes el código actualizado:
Esto debería darte un dataframe de pandas con una columna (
fullgame_values
) que contiene todos los valores de “fullgame” de la página web.