[pyar] Consulta sobre hacer un web scrapper para un homebanking

David Arch daviddanielarch en gmail.com
Lun Jul 9 19:59:47 -03 2018


El lun., 9 de jul. de 2018 2:53 p. m., Sebastian Bassi <sbassi en google.com>
escribió:

> On Mon, Jul 9, 2018 at 10:32 AM Rafael Bermúdez <r.n.bermudez en gmail.com>
> wrote:
>
>> 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?
>>
>> 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.
>
>
>>    - 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.
>
>
>>
>>    - 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.
>
>
>> 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.

>
> _______________________________________________
> Lista de Correo de PyAr - Python Argentina - pyar en 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 Software Libre de
> Argentina - http://www.usla.org.ar
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20180709/b0cbabf4/attachment.html>


Más información sobre la lista de distribución pyar