Discussion:
[pyar] Consulta sobre hacer un web scrapper para un homebanking
Rafael Bermúdez
2018-07-09 17:31:57 UTC
Permalink
Buenas!

Este es mi primer mensaje en la lista, espero que no esté violando ninguna
regla con la pregunta. De ser así, mis disculpas!

Estoy aprendiendo Python, y quería implementar algo que me sea útil, y de
lo cual pueda sacar algún concepto nuevo o interensante. Se me ocurrió
hacer un script que se logueé en mi homebanking, saque cierta información
del mismo, y guarde (o suba a google drive) lo que me interese en un XLS.

Mis preguntas son:

- ¿Es legal hacer esto?
- Considerando que no guardaría mi información de logueo en ningún lado
(ya que no sé aún cómo encriptar archivos o algo similar), y que esto lo
correrería localmente en mi computadora, ¿hay algún riesgo obvio que no
estaría considerando?
- De no haber problema en los cuestiones anteriores, ¿algún tip o
sugerencia?

En principio usaría requests <http://docs.python-requests.org/en/master/> para
hacer las llamadas, y por lo que pude ver, quizá Beautiful Soup
<https://www.crummy.com/software/BeautifulSoup/bs4/doc/> para levantar la
data que necesito.

Gracias!
Rafael
--
Bermúdez Rafael
Sebastian Bassi
2018-07-09 17:53:35 UTC
Permalink
Post by Rafael Bermúdez
Estoy aprendiendo Python, y quería implementar algo que me sea útil, y de
lo cual pueda sacar algún concepto nuevo o interensante. Se me ocurrió
hacer un script que se logueé en mi homebanking, saque cierta información
del mismo, y guarde (o suba a google drive) lo que me interese en un XLS.
- ¿Es legal hacer esto?
Habría que ver los terminos y condiciones del sitio, en general prohiben
el uso de "bots", pero si ese es el caso no es que sea "ilegal" en el
termino de cometer un delito, pero si una infracción a sus normas y puede
tener consecuencias tipo que te saquen la cuenta. Tambien pueden acusarte
de "hackeo", que si bien no tiene sentido dicha acusación no impide que la
puedan hacer. Hay miles de ejemplos de empresas haciendo acusaciones sin
fudamento, que muchas veces terminan desestimadas pero mientras tanto tenes
que hacerte cargo de abogados, perder tiempo, etc. Ademas lo que es legal
varia en cada pais, la gran mayoria de los que estamos aca no somos
abogados, asi que cualquier cosa que te digan aca (incluso esto) tomalo con
cuidado.
Post by Rafael Bermúdez
- Considerando que no guardaría mi información de logueo en ningún
lado (ya que no sé aún cómo encriptar archivos o algo similar), y que esto
lo correrería localmente en mi computadora, ¿hay algún riesgo obvio que no
estaría considerando?
Si el login es via https y las credenciales no las guardas en la PC, no veo
riesgo importante.
Post by Rafael Bermúdez
- De no haber problema en los cuestiones anteriores, ¿algún tip o
sugerencia?
Antes de scrapear agotá la posibilidad mas prolija que es usar una API
para levantar los datos, mira las docs a ver si existe dicha API y/o
preguntá en el banco, aunque no tengan supongo que les sirve para saber que
hay demanda para ese servicio.
Post by Rafael Bermúdez
En principio usaría requests <http://docs.python-requests.org/en/master/> para
hacer las llamadas, y por lo que pude ver, quizá Beautiful Soup
<https://www.crummy.com/software/BeautifulSoup/bs4/doc/> para levantar la
data que necesito.
Esas 2 herramientas están muy bien para eso. Otra opcion que consideraria,
que ademas haria mas dificil la deteccion desde el servidor que estas
usando un script, es usar Selenium con el navegador. Vos haces un script en
Python que le dice al browser que hacer, ademas podes acceder luego
cualquier parte del DOM. Vos usas un script pero para los logs del server
el que está haciendo el request es el navegador, será menos sospechoso que
usando requests o cualquier otra alternativa headless.
David Arch
2018-07-09 22:59:47 UTC
Permalink
Post by Sebastian Bassi
Post by Rafael Bermúdez
Estoy aprendiendo Python, y quería implementar algo que me sea útil, y de
lo cual pueda sacar algún concepto nuevo o interensante. Se me ocurrió
hacer un script que se logueé en mi homebanking, saque cierta información
del mismo, y guarde (o suba a google drive) lo que me interese en un XLS.
- ¿Es legal hacer esto?
Habría que ver los terminos y condiciones del sitio, en general prohiben
el uso de "bots", pero si ese es el caso no es que sea "ilegal" en el
termino de cometer un delito, pero si una infracción a sus normas y puede
tener consecuencias tipo que te saquen la cuenta. Tambien pueden acusarte
de "hackeo", que si bien no tiene sentido dicha acusación no impide que la
puedan hacer. Hay miles de ejemplos de empresas haciendo acusaciones sin
fudamento, que muchas veces terminan desestimadas pero mientras tanto tenes
que hacerte cargo de abogados, perder tiempo, etc. Ademas lo que es legal
varia en cada pais, la gran mayoria de los que estamos aca no somos
abogados, asi que cualquier cosa que te digan aca (incluso esto) tomalo con
cuidado.
Post by Rafael Bermúdez
- Considerando que no guardaría mi información de logueo en ningún
lado (ya que no sé aún cómo encriptar archivos o algo similar), y que esto
lo correrería localmente en mi computadora, ¿hay algún riesgo obvio que no
estaría considerando?
Si el login es via https y las credenciales no las guardas en la PC, no
veo riesgo importante.
Post by Rafael Bermúdez
- De no haber problema en los cuestiones anteriores, ¿algún tip o
sugerencia?
Antes de scrapear agotá la posibilidad mas prolija que es usar una API
para levantar los datos, mira las docs a ver si existe dicha API y/o
preguntá en el banco, aunque no tengan supongo que les sirve para saber que
hay demanda para ese servicio.
Post by Rafael Bermúdez
En principio usaría requests <http://docs.python-requests.org/en/master/>
para hacer las llamadas, y por lo que pude ver, quizá Beautiful Soup
<https://www.crummy.com/software/BeautifulSoup/bs4/doc/> para levantar
la data que necesito.
Esas 2 herramientas están muy bien para eso. Otra opcion que consideraria,
que ademas haria mas dificil la deteccion desde el servidor que estas
usando un script, es usar Selenium con el navegador. Vos haces un script en
Python que le dice al browser que hacer, ademas podes acceder luego
cualquier parte del DOM. Vos usas un script pero para los logs del server
el que está haciendo el request es el navegador, será menos sospechoso que
usando requests o cualquier otra alternativa headless.
Además de hacer la detección más difícil, en sitios complejos que hacen
muchos pedidos con muchos parámetros y tienen mucho Ajax dando vuelta es
muchísimo más fácil sacar lo que querés usando Selenium.
Si querés solamente usar requests en muchos casos vas a tener que hacer un
trabajo de ingeniería inversa bastante importante para saber que llamadas
que hace la página son importantes (y sus argumentos) para llevar a cabo lo
que querés hacer en particular.
Si usas selenium seguramente tu script va correr más lento que haciendo los
pedidos usando requests pero vas a poder tener algo funcionando mucho
antes.
Post by Sebastian Bassi
_______________________________________________
Sitio web: http://www.python.org.ar/
Para administrar la lista (o desuscribirse) entrar a
http://listas.python.org.ar/listinfo/pyar
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
Argentina - http://www.usla.org.ar
Mariano Verdú
2018-07-10 11:11:47 UTC
Permalink
Comparto con la idea de David, agrego que podes dockerizar selenium (e
inclusive tu proceso) para simplificar un poco quizás la ejecución logrando
un ambiente controlado, limpio y descartable. :P

Casualmente WebWhatsappWrapper[0] hace algo similar.

o/

[0] https://github.com/mukulhase/WebWhatsapp-Wrapper/
Post by David Arch
Post by Sebastian Bassi
Post by Rafael Bermúdez
Estoy aprendiendo Python, y quería implementar algo que me sea útil, y
de lo cual pueda sacar algún concepto nuevo o interensante. Se me ocurrió
hacer un script que se logueé en mi homebanking, saque cierta información
del mismo, y guarde (o suba a google drive) lo que me interese en un XLS.
- ¿Es legal hacer esto?
Habría que ver los terminos y condiciones del sitio, en general prohiben
el uso de "bots", pero si ese es el caso no es que sea "ilegal" en el
termino de cometer un delito, pero si una infracción a sus normas y puede
tener consecuencias tipo que te saquen la cuenta. Tambien pueden acusarte
de "hackeo", que si bien no tiene sentido dicha acusación no impide que la
puedan hacer. Hay miles de ejemplos de empresas haciendo acusaciones sin
fudamento, que muchas veces terminan desestimadas pero mientras tanto tenes
que hacerte cargo de abogados, perder tiempo, etc. Ademas lo que es legal
varia en cada pais, la gran mayoria de los que estamos aca no somos
abogados, asi que cualquier cosa que te digan aca (incluso esto) tomalo con
cuidado.
Post by Rafael Bermúdez
- Considerando que no guardaría mi información de logueo en ningún
lado (ya que no sé aún cómo encriptar archivos o algo similar), y que esto
lo correrería localmente en mi computadora, ¿hay algún riesgo obvio que no
estaría considerando?
Si el login es via https y las credenciales no las guardas en la PC, no
veo riesgo importante.
Post by Rafael Bermúdez
- De no haber problema en los cuestiones anteriores, ¿algún tip o
sugerencia?
Antes de scrapear agotá la posibilidad mas prolija que es usar una API
para levantar los datos, mira las docs a ver si existe dicha API y/o
preguntá en el banco, aunque no tengan supongo que les sirve para saber que
hay demanda para ese servicio.
Post by Rafael Bermúdez
En principio usaría requests
<http://docs.python-requests.org/en/master/> para hacer las llamadas, y
por lo que pude ver, quizá Beautiful Soup
<https://www.crummy.com/software/BeautifulSoup/bs4/doc/> para levantar
la data que necesito.
Esas 2 herramientas están muy bien para eso. Otra opcion que
consideraria, que ademas haria mas dificil la deteccion desde el servidor
que estas usando un script, es usar Selenium con el navegador. Vos haces un
script en Python que le dice al browser que hacer, ademas podes acceder
luego cualquier parte del DOM. Vos usas un script pero para los logs del
server el que está haciendo el request es el navegador, será menos
sospechoso que usando requests o cualquier otra alternativa headless.
Además de hacer la detección más difícil, en sitios complejos que hacen
muchos pedidos con muchos parámetros y tienen mucho Ajax dando vuelta es
muchísimo más fácil sacar lo que querés usando Selenium.
Si querés solamente usar requests en muchos casos vas a tener que hacer un
trabajo de ingeniería inversa bastante importante para saber que llamadas
que hace la página son importantes (y sus argumentos) para llevar a cabo lo
que querés hacer en particular.
Si usas selenium seguramente tu script va correr más lento que haciendo
los pedidos usando requests pero vas a poder tener algo funcionando mucho
antes.
Post by Sebastian Bassi
_______________________________________________
Sitio web: http://www.python.org.ar/
Para administrar la lista (o desuscribirse) entrar a
http://listas.python.org.ar/listinfo/pyar
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
Argentina - http://www.usla.org.ar
_______________________________________________
Sitio web: http://www.python.org.ar/
Para administrar la lista (o desuscribirse) entrar a
http://listas.python.org.ar/listinfo/pyar
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
Argentina - http://www.usla.org.ar
Rafael Bermúdez
2018-07-10 17:38:17 UTC
Permalink
Gracias a todos por las respuestas, muy útil!

Voy a investigar ahora Selenium entonces.
Post by Mariano Verdú
Comparto con la idea de David, agrego que podes dockerizar selenium (e
inclusive tu proceso) para simplificar un poco quizás la ejecución logrando
un ambiente controlado, limpio y descartable. :P
Casualmente WebWhatsappWrapper[0] hace algo similar.
o/
[0] https://github.com/mukulhase/WebWhatsapp-Wrapper/
Post by David Arch
Post by Rafael Bermúdez
Estoy aprendiendo Python, y quería implementar algo que me sea útil, y
de lo cual pueda sacar algún concepto nuevo o interensante. Se me ocurrió
hacer un script que se logueé en mi homebanking, saque cierta información
del mismo, y guarde (o suba a google drive) lo que me interese en un XLS.
- ¿Es legal hacer esto?
Habría que ver los terminos y condiciones del sitio, en general
prohiben el uso de "bots", pero si ese es el caso no es que sea "ilegal" en
el termino de cometer un delito, pero si una infracción a sus normas y
puede tener consecuencias tipo que te saquen la cuenta. Tambien pueden
acusarte de "hackeo", que si bien no tiene sentido dicha acusación no
impide que la puedan hacer. Hay miles de ejemplos de empresas haciendo
acusaciones sin fudamento, que muchas veces terminan desestimadas pero
mientras tanto tenes que hacerte cargo de abogados, perder tiempo, etc.
Ademas lo que es legal varia en cada pais, la gran mayoria de los que
estamos aca no somos abogados, asi que cualquier cosa que te digan aca
(incluso esto) tomalo con cuidado.
Post by Rafael Bermúdez
- Considerando que no guardaría mi información de logueo en ningún
lado (ya que no sé aún cómo encriptar archivos o algo similar), y que esto
lo correrería localmente en mi computadora, ¿hay algún riesgo obvio que no
estaría considerando?
Si el login es via https y las credenciales no las guardas en la PC, no
veo riesgo importante.
Post by Rafael Bermúdez
- De no haber problema en los cuestiones anteriores, ¿algún tip o
sugerencia?
Antes de scrapear agotá la posibilidad mas prolija que es usar una API
para levantar los datos, mira las docs a ver si existe dicha API y/o
preguntá en el banco, aunque no tengan supongo que les sirve para saber que
hay demanda para ese servicio.
Post by Rafael Bermúdez
En principio usaría requests
<http://docs.python-requests.org/en/master/> para hacer las llamadas,
y por lo que pude ver, quizá Beautiful Soup
<https://www.crummy.com/software/BeautifulSoup/bs4/doc/> para levantar
la data que necesito.
Esas 2 herramientas están muy bien para eso. Otra opcion que
consideraria, que ademas haria mas dificil la deteccion desde el servidor
que estas usando un script, es usar Selenium con el navegador. Vos haces un
script en Python que le dice al browser que hacer, ademas podes acceder
luego cualquier parte del DOM. Vos usas un script pero para los logs del
server el que está haciendo el request es el navegador, será menos
sospechoso que usando requests o cualquier otra alternativa headless.
Además de hacer la detección más difícil, en sitios complejos que hacen
muchos pedidos con muchos parámetros y tienen mucho Ajax dando vuelta es
muchísimo más fácil sacar lo que querés usando Selenium.
Si querés solamente usar requests en muchos casos vas a tener que hacer
un trabajo de ingeniería inversa bastante importante para saber que
llamadas que hace la página son importantes (y sus argumentos) para llevar
a cabo lo que querés hacer en particular.
Si usas selenium seguramente tu script va correr más lento que haciendo
los pedidos usando requests pero vas a poder tener algo funcionando mucho
antes.
_______________________________________________
Sitio web: http://www.python.org.ar/
Para administrar la lista (o desuscribirse) entrar a
http://listas.python.org.ar/listinfo/pyar
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
Argentina - http://www.usla.org.ar
_______________________________________________
Sitio web: http://www.python.org.ar/
Para administrar la lista (o desuscribirse) entrar a
http://listas.python.org.ar/listinfo/pyar
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
Argentina - http://www.usla.org.ar
_______________________________________________
Sitio web: http://www.python.org.ar/
Para administrar la lista (o desuscribirse) entrar a
http://listas.python.org.ar/listinfo/pyar
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
Argentina - http://www.usla.org.ar
--
Bermúdez Rafael
Facundo Batista
2018-07-18 19:36:12 UTC
Permalink
Considerando que no guardaría mi información de logueo en ningún lado (ya
que no sé aún cómo encriptar archivos o algo similar), y que esto lo
correrería localmente en mi computadora, ¿hay algún riesgo obvio que no
estaría considerando?
Si en algún momento decidís tener los tokens locales en tu máquina,
este proyecto te va a ser útil: https://pypi.org/project/infoauth/

Saludos,
--
. Facundo

Blog: http://www.taniquetil.com.ar/plog/
PyAr: http://www.python.org/ar/
Twitter: @facundobatista
_______________________________________________
Lista de Correo de PyAr - Python Argentina - ***@python.org.ar
Sitio web: http://www.python.org.ar/

Para administrar la lista (o desuscribirse) entrar a http://listas.python.org.ar/listinfo/pyar

La lista de PyAr esta Hosteada en USLA - Usuarios de Softwar
Loading...