Quiero rastrear estos sitios web de musictheory.net. Primero intenté usar solicitudes y BeautifulSoup no funcionó. Finalmente pude usar hellium y BeautifulSoup para rastrear el texto. Cuando traté de rastrear las imágenes, investigué y noté que el texto está incrustado en un botón usando role="button" , hacer clic en cualquier línea de texto generalmente activa diferentes imágenes que generalmente se muestran en la parte superior de la página web. Cuando inspecciono la página web haciendo clic derecho en la página web y haciendo clic en "inspeccionar (Q)", vi que no hay <img src="".............> lo que noté fue hay <canvas style="position"........etc....></canvas> y es dentro de este lienzo donde las imágenes se cargan usando JavaScript, supongo. Estaba confundido mirando el código en todos los <script .......xyz.js></script> . Me alegraría si alguien me puede ayudar a resolver este problema. A continuación se muestra el código que utilicé para imprimir el atributo del lienzo.
from helium import * from bs4 import BeautifulSoup url = 'https://www.musictheory.net/lessons/10' browser = start_chrome(url, headless=True) soup = BeautifulSoup(browser.page_source, 'html.parser') canvas_links = [] y = soup.select('script') for canvas in y: canvas_links.append(canvas) for can in canvas_links: print(can)