autoit, automatisation internet explorer, télécharger sur plusieurs pages
Ceci est une étude de cas de programmation (qui illustre mon niveau lamentable, mais néanmoins opérationnel).
Avec l’avènement des gestionnaires de contenu (SPIP...) de nombreux site proposent de télécharger des fichiers, en mettant chaque lien sur une page différente, en appelant chaque fichier par le même nom par défaut.
Par exemple certaines revues en ligne proposent de télécharger la copie numérique aux abonnés, mais découpent la revue en plusieurs dizaines de pdf (20,40, 50...), avec un lien accessible après plusieurs clics pour télécharger le pdf, qui doit ensuite être renommé à la main. Cette manoeuvre fastidieuse occupant au moins 1 mn par fichier semble être là pour empêcher le piratage... (allez télécharger 400 fichiers ainsi sans erreur alors même que vous les avez payés...)
(Évidemment, exemple facilement transposable sur EMC consult par ex.)
Les pdf des cours sont sur 4 pages ( http://www.dw.de/learn-german/deutsch-warum-nicht-series-1/s-2549 ) et suivantes. Par commodité, je fais 4 copier-coller dans 4 html pour économiser du code inutile. (cf zip ci-joint)
Les fonctions de ce script utilisent l’UDF (User defined functions) IE.au3 qui a pour but d’automatiser IE en se branchant sur son interface COM.
L’aide de cet UDF s’affiche avec le code suivant
#include <IE.au3>
_IE_Introduction([$s_module = "basic"])
(extrait de l’aide générale d’autoit index _IE_Introduction
)
Documentation d’autoit :
New security in Windows Vista [and Windows 8] causes a new browser window to be created when a browser is instructed to navigate to a URL in a different security zone. This occurs as well with the initial creation and navigation initiated with _IECreate. The new window is a new browser instance and the previous browser object variable no longer points to it. There are several workarounds : 1) add #RequireAdmin to your code (this is required even if the account is part of the Administrator’s Group and will propmt for credentials if necessary), 2) use _IEAttach to connect to the new browser window 3) add the target website to the Trusted Sites security zone in IE, 4) turn off "Protected Mode" in IE, or 5) disable UAC. Care must be taken to understand the implications of disabling IE security features when accessing untrusted sites.
En pratique, on obtient des erreurs "run time" incompréhensibles vers les sources de l’UDF.
Le mieux à mon avis est de désactiver le mode protégé dans les options d’IE temporairement.
Bon, hem... à peu près toutes les mauvaises habitudes de programmation (écrire en vrac sans fonctions, tester une erreur sur deux, aucune optimisation), sont là... mais ce code n’a pas vocation à être maintenu ni à être rapide.
(code Autoit v3.3.8.1)
#include <IE.au3>Pour ceux qui voulaient juste les pdf de Deusche Welle ils sont en miroir là
Juste pour info, je récupère les mp3 via la liste RSS et winamp qui fait ça très bien (oui, je sais que je suis un dino de l’informatique et que ce logiciel n’existe plus !)