¿Cuál es la mejor manera de escribir una aplicación web raspado mantenible?
-
19-09-2019 - |
Pregunta
escribí un script Perl hace un tiempo, que ha iniciado sesión en mi banca en línea y por mail el equilibrio y un mini-estado de cuenta cada día. Me pareció muy útil para hacer el seguimiento de mis finanzas. El único problema es que lo escribo tal y usando Perl y el rizo y fue bastante complicado y difícil de mantener. Después de unos pocos casos de mi banco que cambian su página web me harté de depuración para mantenerlo al día.
¿Cuál es la mejor manera de escribir un programa de tal manera que es fácil de mantener? Me gustaría escribir una bonita versión buena ingeniería, ya sea en Perl o Java que será fácil de actualizar cuando el banco tocar el violín, inevitablemente, con su sitio web.
Solución
En Perl, algo así como WWW::Mechanize
ya pueden hacer su guión más simple y robusta, ya que puede encontrar los formularios HTML en respuestas anteriores de la página web. Usted puede llenar en estas formas de preparar una nueva solicitud. Por ejemplo:
my $mech = WWW::Mechanize->new();
$mech->get($url);
$mech->submit_form(
form_number => 1,
fields => { password => $password },
);
die unless ($mech->success);
Otros consejos
Una combinación de WWW :: Mecanizar y web :: raspador son las dos herramientas que me hacen más productivo. Hay un buen artículo sobre esa combinación en el catalizada .org
Si tuviera que dar un consejo, que sería el uso de XPath para todos sus necesidades de raspado. Evitar expresiones regulares.
Hmm, acaba de encontrar
¿Qué es un módulo Perl específicamente para mi banco! No esperaba que fuera tan fácil.
Una gran cantidad de bancos publicar sus datos en un formato estándar, que se utiliza comúnmente por los paquetes de finanzas personales tales como MS Money o Quicken para descargar información de la transacción. Se podría buscar ese gancho y descarga utilizando la misma API, y luego analizar los datos en su final (por ejemplo, analizar documentos de Excel con Hoja de cálculo :: ParseExcel y documentos con Quicken Finanzas :: QIF).
Edit (Responder al comentario): ¿Ha pensado en contacto con su banco y preguntándoles cómo puede iniciar sesión en su cuenta mediante programación con el fin de descargar la información financiera? Muchos / la mayoría de los bancos tienen una API para este (que Quicken etc hacer uso de, como se describió anteriormente).
Hay un momento hasta la fecha de implementación de Ruby aquí:
El uso de Perl y el paquete Web :: rascador: enlace de texto