Script de acesso à sites com campo de autenticação (login/senha)

2,470 views
Skip to first unread message

Patrick Mazulo

unread,
Feb 26, 2014, 8:38:24 AM2/26/14
to python...@googlegroups.com
Pessoal, ultimamente tenho pego algumas bibliotecas pra brincar fazendo alguma coisa, junto com minha equipe web da agência onde trabalho (estamos fazendo mini dojos para treinar os conhecimentos da linguagem, já que estamos iniciando os estudos para inserir Django aqui na empresa. Última coisa que fizemos foi um script que tirava screenshots em um intervalo de tempo. Bem simples, eu sei haha

Agora queremos fazer o seguinte: um script que acesse, por exemplo, minha conta no sistema da faculdade e consiga realizar a operação de renovação de empréstimos de livro da biblioteca. Dividimos por módulos de implementação, e a primeira coisa que queremos fazer é: conseguir acessar o sistema, com o login e senha. Porém, estamos bem perdidos no que diz respeito à acessar a web e inserir dados nos campos. Alguém poderia nos indicar quais bibliotecas estudar, e se, por ventura, tiver algum tutorial que explique sobre, nos repassar?

Valeu :D

bleno nascimento

unread,
Feb 26, 2014, 9:04:22 AM2/26/14
to python...@googlegroups.com
De forma simples e fácil recomento o splinter[0].
Outras formas que podem ser mais trabalhosas e podem dar muito certo também é urllib[1], urllib2[2].

Mas tudo vai depender do que você realmente vai querer fazer e o retorno que você quer do script.



--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com
 
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Python Brasil" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para python-brasi...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.



--
Atenciosamente,

Bleno N. Silva -- 
LightBase - Consultoria em Software Público Ltda.
Desenvolvedor Web
Tel: +55(61) 9235-4482

Tel: +55(61) 3347-1949

Paulo Roberto Macedo Chaves

unread,
Feb 26, 2014, 9:08:31 AM2/26/14
to python...@googlegroups.com

Patrick Mazulo

unread,
Feb 26, 2014, 9:12:24 AM2/26/14
to python...@googlegroups.com
Muito obrigado, Bleno, vou dar uma olhada nesse splinter. :D

Patrick Mazulo

unread,
Feb 26, 2014, 9:13:19 AM2/26/14
to python...@googlegroups.com
Paulo, valeu mesmo, cara! Vou dar uma fuçada nessa lib. Pela descrição tem tudo o que eu estou querendo usar. :D

Lucas Magnum

unread,
Feb 26, 2014, 9:40:01 AM2/26/14
to python...@googlegroups.com
Patrick, 

O selenium[1] também é uma opção (o splinter usa ele também).
A instalação[2] é simples e é bem fácil construir o que você precisa.




[]'s

Lucas Magnum.

Patrick Mazulo

unread,
Feb 26, 2014, 9:47:30 AM2/26/14
to python...@googlegroups.com
Massa, Lucas! Esse Selenium parece ser bem objetivo e intuitivo nos métodos deles. Acho que vou testar esse primeiro hahaha :D









Você recebeu esta mensagem porque está inscrito em um tópico do grupo "Python Brasil" dos Grupos do Google.
Para cancelar a inscrição neste tópico, acesse https://groups.google.com/d/topic/python-brasil/gvoSq-j6FVY/unsubscribe.
Para cancelar a inscrição neste grupo e todos os seus tópicos, envie um e-mail para python-brasi...@googlegroups.com.

Fabio C. Barrionuevo da Luz

unread,
Feb 26, 2014, 9:49:36 AM2/26/14
to python...@googlegroups.com
Fábio C. Barrionuevo da Luz
Acadêmico de Sistemas de Informação na Faculdade Católica do Tocantins - FACTO
Palmas - Tocantins - Brasil - América do Sul

Danilo J. S. Bellini

unread,
Feb 26, 2014, 10:18:52 AM2/26/14
to python-brasil
Normalmente prefiro usar CSS ao invés de XPath, por exemplo com o select do BeautifulSoup 4:

E tem ainda o mechanize, que simula um browser, o que me parece mais leve que controlar um browser como o Firefox com selenium/splinter:
Danilo J. S. Bellini
---------------
"It is not our business to set up prohibitions, but to arrive at conventions." (R. Carnap)

Vinicius Assef

unread,
Feb 27, 2014, 9:37:36 AM2/27/14
to python...@googlegroups.com
2014-02-26 11:12 GMT-03:00 Patrick Mazulo <pma...@gmail.com>:
> Muito obrigado, Bleno, vou dar uma olhada nesse splinter. :D

Vale destacar que o splinter é feito por brasileiros, participantes
daqui da lista.

Patrick Mazulo

unread,
Feb 27, 2014, 11:59:15 AM2/27/14
to python...@googlegroups.com
Que bacana, não sabia disso, Vinícius. Um peso a mais pra eu escolhê-lo. Hahaha, prestigiar o trabalho de nossos conterrâneos :D









--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar

<*> Para visitar o site do grupo na web, acesse:
    http://groups.google.com/group/python-brasil

<*> Para sair deste grupo, envie um e-mail para:
    python-brasi...@googlegroups.com

---
Você recebeu esta mensagem porque está inscrito em um tópico do grupo "Python Brasil" dos Grupos do Google.
Para cancelar a inscrição neste tópico, acesse https://groups.google.com/d/topic/python-brasil/gvoSq-j6FVY/unsubscribe.
Para cancelar a inscrição neste grupo e todos os seus tópicos, envie um e-mail para python-brasi...@googlegroups.com.

Douglas Camata

unread,
Feb 27, 2014, 12:10:44 PM2/27/14
to python...@googlegroups.com
Acho que o Splinter vai ser melhor para este caso. Ele apresenta uma interface bem mais bonita (e pythonica) sobre o Selenium. Você também pode usar vários browsers diferentes (Chrome, Firefox, phantomjs) mudando apenas um parâmetro em um objeto e interagir com a página de uma maneira mais rica do que com simples libs de requests. Inclusive, o Splinter suporta o DjangoClient, ou seja, com os mesmos métodos que você já aprenderia, poderia fazer seus testes no Django.


Você está recebendo esta mensagem porque se inscreveu no grupo "Python Brasil" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para python-brasi...@googlegroups.com.

Para obter mais opções, acesse https://groups.google.com/groups/opt_out.



--
Douglas Camata
Graduando em Ciência da Computação (UENF)

Skype: douglas_camata
-----------------------------------
Linux User #509211

Fabio C. Barrionuevo da Luz

unread,
Feb 27, 2014, 12:23:03 PM2/27/14
to python...@googlegroups.com
Para servir de exemplo, tive que automatizar a extração de dados sobre os preços praticados pelos postos de combustível na cidade de Palmas - TO. Esses preços são verificados inloco periodicamente pela Agencia Nacional do Petróleo...
Não ficou a melhor coisa do mundo mais pelo menos funciona....

Patrick Mazulo

unread,
Feb 27, 2014, 1:08:59 PM2/27/14
to python...@googlegroups.com
O Splinter trabalha especificamente com o XPATH pra navegar/identificar os elementos na página? Porque nesse quesito eu achei o RoboBrowser e Selenium mais práticos, já que você pode usar o 'getElementById' e derivados, pegar o campo, e depois praticar uma ação.
Tipo:
button = firefox.getElementById('btn-send')
button.click()







Fabio C. Barrionuevo da Luz

unread,
Feb 27, 2014, 1:14:46 PM2/27/14
to python...@googlegroups.com
Não. Eu utilizei XPATH porque na época achei mais fácil...rsrsr
Ele suporta todas as opções que o Selenium usa.

O que o Splinter faz é encapsular o Selenium e algumas outras libs em uma api mais simplificada, mas não menos poderosa.

Na documentação do driver padrão do splinter, há mais opções: 

Patrick Mazulo

unread,
Feb 27, 2014, 1:21:32 PM2/27/14
to python...@googlegroups.com
Aaah sim, entendi agora :D
Pois beleza cara, vou usar ele, decidido! Depois que eu conseguir fazer com ele, vou tentar fazer braçalmente, usando as libs padrões do Python hahaha. Valeu mesmo, Fábio







Fabio C. Barrionuevo da Luz

unread,
Feb 27, 2014, 1:26:36 PM2/27/14
to python...@googlegroups.com
Um quando você for fazer "braçalmente", da uma olhada nas bibliotecas:



Reply all
Reply to author
Forward
0 new messages