Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

O html que obtenho é diferente do presente na url

Estou tentando fazer um webscraping do site https://www.pinnacle.com/ Contudo, ao usar o código abaixo:

import urllib.request as urllib_request
from urllib.request import urlopen
from bs4 import BeautifulSoup
import pandas as pd

url = "https://www.pinnacle.com/"
response = urlopen(url)
html = response.read()

soup = BeautifulSoup(html, 'html.parser')
print(soup.prettify())

Obtenho um html que nada tem haver com o site. Alguém poderia me ajudar?

4 respostas

Olá Jõao, isso acontece isso pelo meu conhecimento em bs4 é o fato que existe muita função de JavaScript, como por exemplo EventListener, eu recomendo você pesquisar outra biblioteca de scraping como o Selenium, se você me disser o que está tentando pegar no site eu posso te ajudar a partir do selenium, ou você pode esperar o moderador te responder, com certeza ele irá te responder melhor em relação ao bs4.

Opa. Obrigado Henrique, sua resposta já elucidou parte do problema. Agora pelo menos eu sei pra onde "ir". De qualquer modo, deixarei aberta por mais algum tempo, caso alguém tenha algo a acrescentar. Muito obrigado.

Olá João,

É exatamente como o Henrique explicou, para buscar um conteúdo que é carregado por javascript você precisa de algo mais poderoso do que um urlopen(), como o selenium por exemplo.

O selenium já é bem mais avançado que um simples request do urlopen, ele simula um navegador completo.

Segue abaixo um exemplo básico do uso do selenium:

https://colab.research.google.com/drive/1A7rnZKzMqLRKJQU-bLYCrkLuAut8-06f?usp=sharing

solução!

Obrigado pessoal. Foi um susto saber que eu poderia usar o selenium para webscraping. Eu apenas o tinha usado para automatizar alguns processos. Encontrei algumas coisas que aliadas ao link enviado pelo Lucas, vai me ajudar a resolver o problema.

Qualquer problema, eu volto aqui... foi de muita ajuda.