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!