Quali sono i migliori script Python che hai scritto?
Sono un ingegnere informatico con 15 anni di esperienza. Ho creato diversi script python (simili a molti script già descritti) per compiti di uso quotidiano.
Tuttavia il mio miglior script python sarebbe l'automazione di facebook. La configurazione include un driver selenium su firefox.
Lo script viene attivato una volta ogni 6 ore su un computer dedicato. Lo script apre il browser web e accede al mio account.
Alcune delle cose che può fare sono elencate:
- Parse la mia lista di amici completa e crea un xml con tutti i dettagli rilevanti. (Questo è importante in quanto i passi successivi agiscono solo sui feed delle persone in questo xml creato.)
- Auguri di compleanno agli amici. Prende un messaggio casuale da un gruppo fisso e fa gli auguri di compleanno.
- Scorre la pagina dei feed e compie azioni sui singoli feed.
- Può mettere like alle foto/post se alcune precondizioni sono soddisfatte. Per esempio, una condizione preliminare è che la foto deve essere caricata direttamente e non condivisa dal feed di qualcun altro.
- Per impostazione predefinita, apprezzerà qualsiasi modifica della foto di profilo/copertina.
- Se altre persone si congratulano per l'anniversario, può analizzare il commento, il feed e il messaggio di congratulazione per l'anniversario dal pool di messaggi per l'anniversario.
- Se altre persone si congratulano con il mio amico, può analizzare il commento, il feed e il messaggio di congratulazione per il commento.
- Se qualcuno condivide un post per un evento specifico (come un viaggio, un check-in in un posto o una corsa con un activity tracker) allora questo viene automaticamente apprezzato.
Sono anonimo perché molto probabilmente è contro le politiche di Facebook usare questo tipo di script per l'interazione quotidiana.
EDIT 1:
Questa sezione di modifica è per le persone che sono interessate a sapere come funziona l'intero script. Cercherò di mantenerla minima in modo che non diventi troppo tecnica.
Lo script ha 3 aree di lavoro principali:
- Navigazione : Navigare in una pagina web, scorrere la pagina ecc.
- Raccolta di informazioni: raccogliere le informazioni da elementi specifici nella pagina web e salvarle in strutture locali
- Azione: intraprendere qualche azione su elementi specifici in base alle informazioni raccolte.
Navigazione
Il driver Selenium dà la capacità diretta di lanciare un browser, navigare verso un URL, scorrere verso il basso, ecc. Quindi questa parte è abbastanza semplice.
Raccolta di informazioni
Questa è una delle parti più difficili. Su firefox puoi cliccare con il tasto destro su qualsiasi elemento e ispezionarlo. "Ispeziona elemento" fornisce i dettagli di come appare il codice html di un elemento
Ecco un'istantanea di ciò che firefox mostra quando ispeziono il nome di un amico nella mia lista di amici.
La classe dell'elemento "div" è molto importante. Ora so che ogni volta che analizzerò un elemento di questa classe, esso avrà i dettagli del mio amico (nome, url ecc.)
Prima trovo staticamente questi elementi manualmente e poi li codifico nel mio script.
Ora posso analizzare gli elementi necessari e raccogliere le informazioni presenti in essi tramite Selenium. Selenium fornisce le api per estrarre ogni informazione di un elemento. Per esempio posso estrarre l'"href" nell'immagine sopra e posso salvare l'url del mio amico.
Questo esempio copre anche il primo punto del mio script di come ho creato l'xml di tutti i miei amici. Ho bisogno di analizzare la mia lista di amici solo una volta e salvarla per uso futuro fino a quando non aggiungo/rimuovo un amico.
In modo simile possiamo analizzare i commenti/il numero di like/gli eventi di compleanno ecc.
Azione
Una volta che abbiamo raccolto le informazioni possiamo applicare la nostra logica di programmazione a quelle informazioni. Per esempio, se qualcuno ha commentato "Bella foto" possiamo postare un commento simile.
Selenium fornisce le api per cliccare su un elemento/ digitare in una textarea ecc. So for like we simply click on “Like” element with that specific class.
That’s all folks.