Estoy usando BeautifulSoup para extraer los datos del enlace del sitio web. Hay un total de 9 tablas con el mismo nombre de clase, pero solo puedo obtener un enlace de 5 tablas. ¿Qué cambios debo hacer en el código para poder eliminar todas las tablas presentes en el enlace anterior?
A continuación se muestra el código que he utilizado:
def ScrapeSecScreen(): options = webdriver.ChromeOptions() options.add_argument('--ignore-certificate-errors') options.add_argument('--incognito') options.add_argument('--headless') driver = webdriver.Chrome("C:/Users/pralo/Downloads/DE/chromedriver", chrome_options=options) driver.get('https://www.panamacompra.gob.pa/Inicio/v2/#!/vistaPreviaCP?NumLc=2022-0-30-0-08-CL-024792&esap=0&nnc=0&it=1') sleep(10) sourcecode = driver.execute_script("return document.getElementsByTagName('html')[0].innerHTML") # print(sourcecode) soup = BeautifulSoup(sourcecode,"html.parser") print(soup) l1 = [] tablelist1=soup.findAll('table',{'class':'table table-condensed table-bordered last-line-table'}) for tr in tablelist1: td = tr.find_all('tr') row = [tr.text for tr in td] l1.append(row) print(l1) ScrapeSecScreen()Tras la inspección, resulta que solo las primeras cinco tablas coinciden con las clases que mencionó. Para obtener todas las tablas, puede omitir el argumento de clase o especificar una clase que compartan todas las tablas.
Revisa esta línea de código:
soup.find_all('table', class_='table')