Pitão

Login em sites com Python

Login em sites com Python
O recurso de login é uma funcionalidade importante nos aplicativos da web de hoje. Este recurso ajuda a manter conteúdo especial de não usuários do site e também é usado para identificar usuários premium. Portanto, se você pretende fazer um web scraping em um site, poderá encontrar o recurso de login se o conteúdo estiver disponível apenas para usuários registrados.

Tutoriais de web scraping foram abordados no passado, portanto, este tutorial cobre apenas o aspecto de obter acesso a sites fazendo login com código em vez de manualmente usando o navegador.

Para entender este tutorial e ser capaz de escrever scripts para fazer login em sites, você precisa de algum conhecimento de HTML. Talvez não o suficiente para construir sites incríveis, mas o suficiente para entender a estrutura de uma página da web básica.

Instalação

Isso seria feito com as bibliotecas Requests e BeautifulSoup Python. Além dessas bibliotecas Python, você precisaria de um bom navegador, como Google Chrome ou Mozilla Firefox, pois seriam importantes para uma análise inicial antes de escrever o código.

As bibliotecas Requests e BeautifulSoup podem ser instaladas com o comando pip a partir do terminal, conforme mostrado abaixo:

pedidos de instalação pip
pip instalar BeautifulSoup4

Para confirmar o sucesso da instalação, ative o shell interativo do Python, que é feito digitando Pitão no terminal.

Em seguida, importe as duas bibliotecas:

pedidos de importação
de bs4 import BeautifulSoup

A importação é bem sucedida se não houver erros.

O processo

O login em um site com scripts requer conhecimento de HTML e uma ideia de como a web funciona. Vamos dar uma olhada rápida em como a web funciona.

Os sites são compostos por duas partes principais, o lado do cliente e o lado do servidor. O lado do cliente é a parte de um site com o qual o usuário interage, enquanto o lado do servidor é a parte do site onde a lógica de negócios e outras operações do servidor, como acessar o banco de dados, são executadas.

Ao tentar abrir um site por meio de seu link, você está fazendo uma solicitação ao servidor para buscar os arquivos HTML e outros arquivos estáticos, como CSS e JavaScript. Esta solicitação é conhecida como solicitação GET. No entanto, quando você está preenchendo um formulário, enviando um arquivo de mídia ou um documento, criando uma postagem e clicando, digamos, em um botão de envio, você está enviando informações para o servidor. Esta solicitação é conhecida como solicitação POST.

Uma compreensão desses dois conceitos seria importante ao escrever nosso roteiro.

Inspecionando o site

Para praticar os conceitos deste artigo, estaríamos usando o site Quotes To Scrape.

O login em sites requer informações como nome de usuário e senha.

No entanto, como este site é usado apenas como uma prova de conceito, vale tudo. Portanto, estaríamos usando admin como o nome de usuário e 12345 como a senha.

Em primeiro lugar, é importante visualizar o código-fonte da página, pois isso forneceria uma visão geral da estrutura da página da web. Isso pode ser feito clicando com o botão direito do mouse na página da web e clicando em “Exibir código-fonte da página”. Em seguida, você inspeciona o formulário de login. Você faz isso clicando com o botão direito em uma das caixas de login e clicando em inspecionar elemento. Ao inspecionar o elemento, você deve ver entrada tags e, em seguida, um pai Formato tag em algum lugar acima dela. Isso mostra que os logins são basicamente formulários sendo PUBLICARed para o lado do servidor do site.

Agora, observe o nome atributo das tags de entrada para as caixas de nome de usuário e senha, eles seriam necessários ao escrever o código. Para este site, o nome atributo para o nome de usuário e a senha são nome do usuário e senha respectivamente.

Em seguida, temos que saber se existem outros parâmetros que seriam importantes para o login. Vamos explicar isso rapidamente. Para aumentar a segurança dos sites, geralmente são gerados tokens para evitar ataques de falsificação cruzada.

Portanto, se esses tokens não forem adicionados à solicitação POST, o login falhará. Então, como sabemos sobre esses parâmetros?

Precisaríamos usar a guia Rede. Para obter esta guia no Google Chrome ou Mozilla Firefox, abra as Ferramentas do desenvolvedor e clique na guia Rede.

Quando estiver na guia de rede, tente atualizar a página atual e você notará solicitações chegando. Você deve tentar ficar atento a solicitações POST enviadas quando tentamos fazer login.

Aqui está o que faríamos a seguir, tendo a guia Rede aberta. Insira os detalhes de login e tente fazer login, a primeira solicitação que você verá deve ser a solicitação POST.

 

Clique na solicitação POST e veja os parâmetros do formulário. Você notaria que o site tem um csrf_token parâmetro com um valor. Esse valor é um valor dinâmico, portanto, precisaríamos capturar esses valores usando o OBTER solicitar primeiro antes de usar o PUBLICAR solicitação.

Para outros sites em que estaria trabalhando, provavelmente não verá o csrf_token mas pode haver outros tokens que são gerados dinamicamente. Com o tempo, você conheceria melhor os parâmetros que realmente importam ao fazer uma tentativa de login.

O código

Em primeiro lugar, precisamos usar Requests e BeautifulSoup para obter acesso ao conteúdo da página de login.

de solicitações de importação de sessão
de bs4 import BeautifulSoup como bs
 
com Session () como s:
site = s.get ("http: // aspas.raspar.com / login ")
imprimir (site.contente)

Isso imprimirá o conteúdo da página de login antes de fazer o login e se você pesquisar a palavra-chave “Login”. A palavra-chave seria encontrada no conteúdo da página, mostrando que ainda não estamos fazendo login.

Em seguida, procuraríamos o csrf_token palavra-chave que foi encontrada como um dos parâmetros ao usar a guia rede anteriormente. Se a palavra-chave mostrar uma correspondência com um entrada tag, então o valor pode ser extraído toda vez que você executar o script usando BeautifulSoup.

de solicitações de importação de sessão
de bs4 import BeautifulSoup como bs
 
com Session () como s:
site = s.get ("http: // aspas.raspar.com / login ")
bs_content = bs (site.conteúdo, "html.analisador ")
token = bs_content.find ("input", "name": "csrf_token") ["valor"]
login_data = "nome de usuário": "admin", "senha": "12345", "csrf_token": token
s.post ("http: // aspas.raspar.com / login ", login_data)
home_page = s.get ("http: // aspas.raspar.com ")
imprimir (home_page.contente)

Isso imprimirá o conteúdo da página após o login e se você pesquisar a palavra-chave “Logout”. A palavra-chave seria encontrada no conteúdo da página, mostrando que fomos capazes de fazer o login com sucesso.

Vamos dar uma olhada em cada linha de código.

de solicitações de importação de sessão
de bs4 import BeautifulSoup como bs

As linhas de código acima são usadas para importar o objeto Session da biblioteca de solicitações e o objeto BeautifulSoup da biblioteca bs4 usando um alias de bs.

com Session () como s:

A sessão de solicitações é usada quando você pretende manter o contexto de uma solicitação, para que os cookies e todas as informações dessa sessão de solicitação possam ser armazenados.

bs_content = bs (site.conteúdo, "html.analisador ")
token = bs_content.find ("input", "name": "csrf_token") ["valor"]

Este código aqui utiliza a biblioteca BeautifulSoup para que o csrf_token pode ser extraído da página da web e, em seguida, atribuído à variável de token. Você pode aprender como extrair dados de nós usando BeautifulSoup.

login_data = "nome de usuário": "admin", "senha": "12345", "csrf_token": token
s.post ("http: // aspas.raspar.com / login ", login_data)

O código aqui cria um dicionário dos parâmetros a serem usados ​​para login. As chaves dos dicionários são os nome atributos das tags de entrada e os valores são os valor atributos das tags de entrada.

O publicar método é usado para enviar uma solicitação de postagem com os parâmetros e nos logar.

home_page = s.get ("http: // aspas.raspar.com ")
imprimir (home_page.contente)

Após um login, essas linhas de código acima simplesmente extraem as informações da página para mostrar que o login foi bem-sucedido.

Conclusão

O processo de login em sites usando Python é bastante fácil, no entanto, a configuração dos sites não é a mesma, portanto, alguns sites seriam mais difíceis de fazer login do que outros. Há muito mais que pode ser feito para superar quaisquer desafios de login que você tenha.

O mais importante em tudo isso é o conhecimento de HTML, Requests, BeautifulSoup e a capacidade de entender as informações obtidas na guia Rede das ferramentas de desenvolvedor do seu navegador da web.

Como mostrar o contador de FPS em jogos Linux
Os jogos Linux tiveram um grande impulso quando a Valve anunciou o suporte Linux para o cliente Steam e seus jogos em 2012. Desde então, muitos jogos ...
Como baixar e jogar Sid Meier's Civilization VI no Linux
Introdução ao jogo Civilization 6 é uma versão moderna do conceito clássico introduzido na série de jogos Age of Empires. A ideia era bastante simples...
Como instalar e jogar Doom no Linux
Introdução ao Doom A série Doom teve origem nos anos 90 após o lançamento do Doom original. Foi um sucesso instantâneo e, a partir desse momento, a sé...