Os tutoriais de raspagem na web foram abordados no passado; portanto, este tutorial cobre apenas o aspecto de obter acesso em sites, fazendo login com código, em vez de fazê -lo manualmente usando o navegador.
Para entender este tutorial e ser capaz de escrever scripts para fazer login em sites, você precisaria de alguma compreensão do HTML. Talvez não o suficiente para criar sites incríveis, mas o suficiente para entender a estrutura de uma página da web básica.
Isso seria feito com as solicitações e bibliotecas de belas grupos Python. Além dessas bibliotecas Python, você precisaria de um bom navegador, como Google Chrome ou Mozilla Firefox, pois eles seriam importantes para a análise inicial antes de escrever o código.
As solicitações e bibliotecas de belos grupos podem ser instaladas com o comando pip a partir do terminal, como visto abaixo:
solicitações de instalação pipPara confirmar o sucesso da instalação, ative o shell interativo do Python, o que é feito digitando Pitão no terminal.
Em seguida, importe as duas bibliotecas:
solicitações de importaçãoA importação é bem -sucedida se não houver erros.
O processo
O login em um site com scripts requer conhecimento de html e uma idéia de como a web funciona. Vamos examinar brevemente como a web funciona.
Os sites são feitos de duas partes principais, o lado do cliente e o lado do servidor. O lado do cliente faz parte de um site com o qual o usuário interage, enquanto o lado do servidor faz parte do site em que a lógica de negócios e outras operações do servidor, como o acesso ao banco de dados, são executadas.
Quando você tenta abrir um site através do link, você está fazendo uma solicitação ao lado do 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 em dizer um botão de envio, você está enviando informações para o lado do servidor. Este pedido é conhecido como solicitação de postagem.
Um entendimento desses dois conceitos seria importante ao escrever nosso script.
Inspecionando o site
Para praticar os conceitos deste artigo, estaríamos usando as cotações para raspar o site.
O login em sites requer informações como o nome de usuário e uma senha.
No entanto, como este site é usado apenas como prova de conceito, tudo vai. Portanto, estaríamos usando admin como o nome de usuário e 12345 como a senha.
Em primeiro lugar, é importante ver a fonte da página, pois isso daria 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 "Visualizar a fonte da página". Em seguida, você inspeciona o formulário de login. Você faz isso clicando com o botão direito do mouse em uma das caixas de login e clicando inspecionar elemento. Ao inspecionar o elemento, você deve ver entrada tags e depois um pai forma Marque em algum lugar acima dele. Isso mostra que os logins são basicamente formas 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, elas seriam necessárias ao escrever o código. Para este site, o nome atributo para o nome de usuário e a senha são nome de usuário e senha respectivamente.
Em seguida, precisamos saber se existem outros parâmetros que seriam importantes para o login. Vamos explicar rapidamente isso. Para aumentar a segurança dos sites, os tokens geralmente são gerados para evitar ataques de falsificação de local transversal.
Portanto, se esses tokens não forem adicionados à solicitação de postagem, o login falharia. Então, como sabemos sobre esses parâmetros?
Precisamos usar a guia de rede. Para obter esta guia no Google Chrome ou Mozilla Firefox, abra as ferramentas do desenvolvedor e clique na guia da rede.
Depois de estar na guia de rede, tente atualizar a página atual e você notará solicitações entrando. Você deve tentar procurar solicitações de postagem quando tentarmos fazer login.
Aqui está o que faríamos a seguir, enquanto teria a guia de rede aberta. Coloque os detalhes do login e tente fazer login, a primeira solicitação que você veria deve ser a solicitação de postagem.
Clique na solicitação de postagem e visualize 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 PEGAR solicitar primeiro antes de usar o PUBLICAR solicitar.
Para outros sites em que você estaria trabalhando, você provavelmente pode não ver o csrf_token Mas pode haver outros tokens que são gerados dinamicamente. Com o tempo, você ficaria melhor em conhecer os parâmetros que realmente importam em fazer uma tentativa de login.
O código
Em primeiro lugar, precisamos usar solicitações e belaspoup para obter acesso ao conteúdo da página da página de login.
da sessão de importação de solicitaçõesIsso imprimiria o conteúdo da página de login antes de fazer login e se você procurar a palavra -chave "Login". A palavra -chave seria encontrada no conteúdo da página mostrando que ainda estamos para fazer login.
Em seguida, procuraríamos pelo csrf_token Palavra -chave que foi encontrada como um dos parâmetros ao usar a guia de 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ê executa o script usando o beautifulSoup.
da sessão de importação de solicitaçõesIsso imprimiria o conteúdo da página após o login e se você procurar a palavra -chave "logout". A palavra -chave seria encontrada no conteúdo da página mostrando que conseguimos fazer login com sucesso.
Vamos dar uma olhada em cada linha de código.
da sessão de importação de solicitaçõesAs linhas de código acima são usadas para importar o objeto de sessão da biblioteca de solicitações e do objeto BeautifulSoup da biblioteca BS4 usando um alias de bs.
com sessão () como s:Solicitações Sessão são usadas 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 ")Este código aqui utiliza a biblioteca de belo grupo para que o csrf_token pode ser extraído da página da web e depois atribuído à variável token. Você pode aprender sobre a extração de dados de nós usando o BeautifulSoup.
login_data = "nome de usuário": "admin", "senha": "12345", "csrf_token": tokenO código aqui cria um dicionário dos parâmetros a serem usados para fazer 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 O método é usado para enviar uma solicitação de postagem com os parâmetros e registrar -nos.
home_page = s.Get ("http: // citações.raspar.com ")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.
O processo de login nos sites usando o Python é bastante fácil, no entanto, a configuração de sites não é a mesma, portanto, alguns sites seriam mais difíceis de fazer login do que outros. Há mais que pode ser feito para superar quaisquer desafios de login que você tenha.
A coisa mais importante em tudo isso é o conhecimento de html, solicitações, beltopoup e a capacidade de entender as informações obtidas na guia de rede das ferramentas de desenvolvedor do seu navegador da web.