1
resposta

Raspagem de dados em banco de dados

Olá estou fazendo um trabalho de coleta de dados do seguinte site: http://info.nowgoal.com/en/SubLeague/2016/178/176.html .Preciso obter em forma de tabela os seguintes dados: nº, Data,Hora,Home,Score, Away, Handicap HT e FT, Over/Under HT e FT, e HT. Tentei fazer seguindo a explicação dada na resposta a pergunta anterior e não obtive sucesso. Quando peço uma informação a resposta fica vazia. Segue um pedaço do código que copiei da outra resposta e modifiquei.

#Request Headers
headers = {
    'Host': 'info.nowgoal.com',
    'Connection': 'keep-alive',
#    'Content-Length': '298',
   'Cache-Control': 'max-age=0',
#    'Origin': 'https://sistemas.ufmg.br',
    'Upgrade-Insecure-Requests': '1',
#    'Content-Type': 'text/html; charset=utf-8',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36',
#    'Sec-Fetch-Mode': 'navigate',
#    'Sec-Fetch-User': '?1',
#    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
#    'Sec-Fetch-Site': 'same-origin',
    'Referer': 'http://info.nowgoal.com/en/SubLeague/2017/178.html',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'Accept-Encoding': 'gzip, deflate, br',
    'Accept-Language': 'pt-BR,pt;q=0.9,en-CA;q=0.8,en;q=0.7,en-US;q=0.6',
    'Cookie': '_ga=GA1.2.907949097.1578099774; UM_distinctid=16f6e13974e1b5-0f57e15547bb6f-6701b35-15f900-16f6e13974f356; _gid=GA1.2.583007421.1582370536; Hm_lvt_59469144862a8f187c32323c9bd28703=1581337890,1582370537,1582457843,1582546778; CNZZDATA1327138=cnzz_eid%3D576663148-1578095844-http%253A%252F%252Fwww.nowgoal.com%252F%26ntime%3D1582543137; Hm_lpvt_59469144862a8f187c32323c9bd28703=1582546796'   
}

response = requests.post(url, headers = headers)#,data = params)
html = response.text
html = tratamento_html(html)
soup = BeautifulSoup(html, 'html.parser')
tamanho = []
soup.find('table', {'class': 'tdsolid'})
1 resposta

Olá João,

Pelo que eu vi essa tabela é carregada com javascript, e o requests não faz a execução de código js, para isso você vai precisar de uma ferramenta mais poderosa, como o Selenium por exemplo.

O Selenium vai simulador um navegador e carregar toda a página, executando o javascript no processo, enquanto o requests apenas recebe o conteúdo.

Nesse outro post eu fiz um exemplo do uso do Selenium explicando um pouco mais.


Outro detalhe está no seu find(), olhando no código da página eu não encontrei uma table com a classe tdsolid, a tabela com a informações que você está querendo tem a classe tdlink e o id Table3. Você pode abrir o código fonte da página com Ctrl + U no chrome ou firefox, ou então inspecionar o elemento que você quer para ver o seu código.

Espero ter ajudado, qualquer dúvida é só falar!