Estou desenvolvendo um projeto para trinar minhas habilidades com Web Scraping, mas não estou conseguindo acessar os dados da tabela de um site. Quero poder pegar esta tabela e formar uma lista com dicionários e depois armazenar esses dados em um arquivo Json. Segue o código:
# imports
from urllib.request import urlopen, urlretrieve
from urllib.error import URLError, HTTPError
from bs4 import BeautifulSoup
import pandas as pd
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
import requests
import json
from time import sleep
# Definindo o caminho do PATH
PATH = "C:\Program Files (x86)\chromedriver.exe"
driver = webdriver.Chrome(PATH)
#Definindo a URL
url = "https://www.fundamentus.com.br/resultado.php"
# Acessando a url
page = driver.get(url)
# Dando um tempo para o navegador carregar e conseguir raspar o elemento
sleep(10)
page_content = requests.get(url).text
# Parsear o contúdo HTML - bs4
soup = BeautifulSoup(page_content, 'html.parser')
tables = soup.find_all("table")
# Criando um lista para inserir os dicts
table = []
tab_data = [[cell.text for cell in row.find_all(["th","td"])]for row in table.find_all("tr")]
# Estruturar os Dados em um DataFrame - pandas
df = pd.DataFrame(tab_data)
# Transformar os Dados em um dicionário de dados próprios
# Converter e salvar em um arquivo Json
# Saindo do Navegador
driver.quit()
Tentei fazer o WS sem o selenium, porém acho que o site carrega dinamicamente então não consegui usar somente o BeautifulSoup. Ao tentar fazer o WS somente com o bs4 recebo no print, uma url = http://www.w3.org/TR/html4/strict.dtd .