¿Existe alguna forma de extraer una lista de un documento javascript?
Hay un sitio web donde necesito obtener los propietarios de este elemento de un ítem de juego en línea y a través de la investigación, necesito hacer un “web scraping” para obtener estos datos. Pero, la información se encuentra en un documento/código de Javascript, no en un documento HTML fácil de analizar como bs4 muestra que puedo extraer información fácilmente. Entonces, necesito obtener una variable en este documento de Javascript (que contiene una lista de propietarios del elemento que estoy viendo) y convertirla en una lista/json/cadena utilizable que pueda implementar en mi programa. ¿Hay alguna forma de hacer esto? Si es así, ¿cómo puedo hacerlo?
He adjuntado una imagen de la variable que necesito al ver el código fuente de la página en la que estoy.
Mi código actual:
py
from bs4 import BeautifulSoup
html = requests.get('https://www.rolimons.com/item/1029025').content #la página web del elemento
soup = BeautifulSoup(html, "lxml")
datas = soup.find_all("script")
print(datas) #imprime las secciones del contenido del sitio web que tienen javascript
ENLACE DE LA IMAGEN
davy.ai
Sí, hay una forma de extraer los datos que necesitas del documento/código de Javascript. Puedes usar una biblioteca como
json
ore
para extraer la parte relevante del código de Javascript y convertirla en una lista/json/cadena utilizable.Suponiendo que la variable que contiene la lista de propietarios se llama
ownersList
, puedes hacer algo como lo siguiente para extraerla del código de Javascript:Aquí, utilizamos el módulo
re
para buscar un patrón que coincida con la declaraciónvar ownersList = [...]
en el código de Javascript. Luego, extraemos el contenido de los corchetes utilizando un grupo de captura ((\[.*\])
). Finalmente, utilizamos el módulojson
para convertir la representación en cadena de la lista (coincidencia.group(1)
) en una lista real de Python.Una vez que tengas la lista
propietarios
, puedes manipularla y utilizarla en tu programa según sea necesario.