Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Web Scraping necessita de Login

Estou fazendo um código para coletar informações de um site mas este pede um login para acessar tais dados. Eu possuo o login, consigo entrar normalmente no browser, mas quando coloco para o Jupyter acessar, ele não consegue passar pelo login. Como posso informar minhas credenciais para o Jupyter ter acesso?

Obrigado

1 resposta
solução!

Oii Vinícius, tudo certo por ai?

Sinto muito pela demora em dar um retorno.

Quando temos um site que precisa de login, existem algumas possibilidades que podemos tentar para realizar esse login:

  • Parametrizar a requisição com os cookies da página, ou seja, utilizar o conteúdo do cookie para conseguir o acesso;
  • Efetuar uma requisição POST com os parâmetros da requisição;
  • Automatizar o procedimento, fazendo com que o código seja capaz de digitar informações, clicar em botões, etc.

Vou te explicar aqui, com um exemplo prático, como você pode fazer esse login por meio da terceira opção mostrada acima: Automatizar o procedimento, fazendo com que o código seja capaz de digitar informações, clicar em botões, etc

Para automatizar esse processo com um programa mais dinâmico que faça o login de forma automática, precisamos utilizar uma biblioteca chamada Selenium. Essa biblioteca permite que seu programa interaja de forma mais dinâmica com a página, digitando textos, clicando em botões, dentre outras coisas, ou seja, você irá executar o código e ele automaticamente interage com as páginas por você. Para conseguirmos utilizar essa biblioteca é necessário baixar o driver do navegador que você está utilizando. Esse driver permitirá que o Selenium acesse seu navegador e execute os procedimentos desejados.

Caso você use o Chrome, você pode acessar essa página e escolher uma versão mais recente que seja compatível com o seu sistema operacional, e, caso seu navegador seja o Firefox, você pode clicar aqui para fazer o download.

Em relação a código, abaixo um exemplo de fazermos login com o Selenium no site do Linkedin:

from selenium.webdriver import Firefox
from bs4 import BeautifulSoup


url_login = ('https://www.linkedin.com/login/')

driver = Firefox()
driver.get(url_login)

driver.find_element_by_name("session_key").send_keys("SEU EMAIL")
driver.find_element_by_name("session_password").send_keys("SUA SENHA")
driver.find_element_by_xpath('//button[@data-litms-control-urn="login-submit"]').click()

driver.get(alguma_url_interna_do_linkedin)

soup = BeautifulSoup(driver.page_source, 'html.parser')

driver.close()

A biblioteca Selenium é uma solução bem poderosa e bastante utilizada quando queremos fazer scraping em um site que necessita de login. Caso você queira acessar uma explicação mais detalhada sobre as outras maneiras de fazer login que citei no início do tópico, sugiro a leitura deste outro tópico.

Espero ter conseguido ajudar. Qualquer dúvida, estou por aqui :)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software