Récupérer automatiquement un lien WeTransfer, A l'aide d'un script :-) |
Bienvenue invité ( Connexion | Inscription )
Récupérer automatiquement un lien WeTransfer, A l'aide d'un script :-) |
18 Sep 2015, 17:44
Message
#1
|
|
Macbidouilleur d'Or ! Groupe : Rédacteurs Messages : 5 064 Inscrit : 19 Feb 2002 Lieu : BZH Membre no 2 083 |
Wetransfer, vous connaissez certainement.
Les liens de téléchargement sont contenus dans une pièce jointe au format HTML : on lance son navigateur, on clique sur le lien et sa charge. J'ai trouvé sur la toile un script Python qui fait le boulot dans une ligne de commande. Truc chiant, il faut extraire de la pièce jointe HTML (que l'on reçoit sur sa boite mail) l'URL de téléchargement constitué de la forme : https://www.wetransfer.com/downloads/*****/*****/***** Par quel mécanisme serait-il possible d'en extraire cette URL, et la passer comme argument du script Python ? Merci pour vos réponses ;-) Ciao -------------------- Quis custodiet ipsos custodes ? - Lorsqu'un sujet est résolu, merci d'indiquer [Résolu] dans le titre de votre post !
Luttons contre le style SMS !!! iPhone 14Pro Max 256 Go iOS 17• MacBook Pro 16 2019 Core i9 - macOS 12.7.2 - 32 GB RAM - 2 TB • @Orange Linux • OPNSense / pfSense • Une pointe de Windows aussi • Enfocus Switch Expert • callas pdfToolBox |
|
|
18 Sep 2015, 20:14
Message
#2
|
|
Macbidouilleur d'Or ! Groupe : Modérateurs Messages : 19 343 Inscrit : 22 Jul 2004 Lieu : Louvain-la-Neuve (Gaule Gelbique) Membre no 21 291 |
Franchement, c'est plutôt le genre de question que je t'aurais posée à toi…
« Comment faire une petite requête en expression régulière du genre : extraire la chaîne de caractères, sans espace, qui commence par https://wetransfer.com/dowloads et se termine par une espace ? » -------------------- ¶ MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS 12.6 “Monterey” ¶ MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8 ¶ Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C ¶ B-Box 3 + HP LaserJet 4000 N
¶ La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même. … Les corsaires mettent en berne… |
|
|
Guest_JacqR_* |
19 Sep 2015, 07:27
Message
#3
|
Guests |
Bonjour,
Edition : Je m’excuse de vous avoir suggéré de tester un script AppleScript nul. Ce message a été modifié par JacqR - 23 Sep 2015, 14:48. |
|
|
28 Sep 2015, 21:57
Message
#4
|
|
Macbidouilleur d'Or ! Groupe : Rédacteurs Messages : 5 064 Inscrit : 19 Feb 2002 Lieu : BZH Membre no 2 083 |
Bonjour, Edition : Je m’excuse de vous avoir suggéré de tester un script AppleScript nul. Belle preuve de modestie et d’honnêteté : bravo JacqR, j'apprécie cette franchise :-) -------------------- Quis custodiet ipsos custodes ? - Lorsqu'un sujet est résolu, merci d'indiquer [Résolu] dans le titre de votre post !
Luttons contre le style SMS !!! iPhone 14Pro Max 256 Go iOS 17• MacBook Pro 16 2019 Core i9 - macOS 12.7.2 - 32 GB RAM - 2 TB • @Orange Linux • OPNSense / pfSense • Une pointe de Windows aussi • Enfocus Switch Expert • callas pdfToolBox |
|
|
29 Sep 2015, 06:02
Message
#5
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 486 Inscrit : 29 Aug 2002 Membre no 3 340 |
Si python déjà fait partie de la recette, autant utiliser son "parseur" d'HTML.
Voici un exemple en français: http://crunchbang-fr.org/forum/viewtopic.php?id=2041 J'ai pratiqué cet exercice pas en Python mais en Ruby et le principe reste très semblable. Le parser appelle des "call-outs" chaque fois qu'il est au début d'un élément ou juste après avoir identifié cet élément . J-P |
|
|
30 Sep 2015, 20:54
Message
#6
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 486 Inscrit : 29 Aug 2002 Membre no 3 340 |
Auparavant, il faut:
- un script qui sélectionne dans une mailbox, certains mails selon certains critères - Un script qui extrait l'attachement HTML des emails intéressants - Un script qui "parse" l'HTML de l'attachement J-P |
|
|
30 Sep 2015, 21:02
Message
#7
|
|
Macbidouilleur d'Or ! Groupe : Rédacteurs Messages : 5 064 Inscrit : 19 Feb 2002 Lieu : BZH Membre no 2 083 |
Citation - un script qui sélectionne dans une mailbox, certains mails selon certains critères Ça, je le fais à l'aide d'un produit qui fait bien le boulot, Citation - Un script qui extrait l'attachement HTML des emails intéressants Idem point précédant, Citation - Un script qui "parse" l'HTML de l'attachement C'est ce que je dois faire ;-) -------------------- Quis custodiet ipsos custodes ? - Lorsqu'un sujet est résolu, merci d'indiquer [Résolu] dans le titre de votre post !
Luttons contre le style SMS !!! iPhone 14Pro Max 256 Go iOS 17• MacBook Pro 16 2019 Core i9 - macOS 12.7.2 - 32 GB RAM - 2 TB • @Orange Linux • OPNSense / pfSense • Une pointe de Windows aussi • Enfocus Switch Expert • callas pdfToolBox |
|
|
1 Oct 2015, 13:16
Message
#8
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 486 Inscrit : 29 Aug 2002 Membre no 3 340 |
Et donc pour la dernière étape, la bibliothèque standard de Python a les objets qui vont bien, c'est le lein que j'ai indiqué plus haut.
On passe au parser tout ou partie de l'HTML, et chaque fois qu'il va rencontrer une balise "<a>" il va appeler une méthode que l'utilsateur doit coder. Les attributs sont déjà extraits dont le href qui est l'URL qui t'intéresse. C'est cqu'on appelle Inversione Contrôle ou méthode Hollywood: "Ne nous appelez pas, NOUS vous appellerons". Donc, comme la fonction est appelé que dans le bon contexte, on n'a pas à s'intéresser à tout le reste. Il est préferable de passer l'HTML complet, car en travaillant ligne par ligne, on peu galérer si un tag s'etend sur plusieurs lignes. Il faut probablement un test pour ignorer les autres <a>, en quittant immédiatement la méthode appelée par le parseur, si certains critères manquent, par ex si le texte de la balise n'est pas celui qu'on attend ou si pas de "wetransfer" dans l'URL du href. Edit Il y a en Python une bibliothèque dédiée à l'analyse de l'HTML Beautiful Soup Première étape, l'installer dans python Code [jaypee:~]$ sudo pip install beautifulsoup4 Password: Downloading/unpacking beautifulsoup4 Downloading beautifulsoup4-4.4.1-py2-none-any.whl (81kB): 81kB downloaded Installing collected packages: beautifulsoup4 Successfully installed beautifulsoup4 Cleaning up... Deuxième étape, son utilisation CODE [jaypee:~]$ python Python 2.7.10 (default, Aug 22 2015, 20:33:39) [GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.1)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> from bs4 import BeautifulSoup >>> html = "<html><head></head><body><a href='http://host/context/uri'>Cliquer ici</a></body></html>" >>> soup = BeautifulSoup(html, 'html.parser') >>> print(soup.prettify()) <html> <head> </head> <body> <a href="http://host/context/uri"> Cliquer ici </a> </body> </html> >>> soup.a <a href="http://host/context/uri">Cliquer ici</a> >>> soup.a.get('href') u'http://host/context/uri' >>> soup.a.get('href').split('/') [u'http:', u'', u'host', u'context', u'uri'] soup.a.get('href').split('/')[4] u'uri' C'est juste l'idée générale J-P Ce message a été modifié par Jaypee - 3 Oct 2015, 15:43. |
|
|
Nous sommes le : 18th April 2024 - 09:42 |