Automatisez l’export des rapports Semrush avec Python sans passer par l’API
Prérequis
- Python
- Pip
- Requirements.txt
- Driver chrome pour utiliser Selenium
- Un compte Semrush
- Le script dispo sur Github : https://github.com/cestmoihugo/semrush_reports
Python
Pour télécharger la dernière version : https://www.python.org/downloads/
Pip
Pip permet d’installer facilement des packages python en quelques lignes. Normalement pip est installé automatiquement avec la dernière version de python mais il convient de vérifier que c’est bien le cas. Pour ce faire, ouvrez le terminal et tapez :
pip --version
Si aucune erreur n’est remontée on est bon. Sinon pour installer pip c’est par ici.
Requirements.txt
Pour faire fonctionner le script, rentrez la commande suivante dans votre terminal afin d’installer tous les packages.
pip install -r requirements.txt
Selenium & Driver Chrome
Selenium permet de lancer et d’interagir automatiquement avec des navigateurs (Chrome, Firefox, etc…). Pour ce script, nous utiliserons Chrome, il vous faudra donc télécharger son driver, pour ce faire :
1) allez sur chrome://settings/help et vérifiez votre version
2) allez sur http://chromedriver.chromium.org/downloads
et téléchargez la version correspondante.
3) déplacez le fichier chromedriver dans le dossier driver
Comment fonctionne le script
Configuration du script
Ouvrez semrush_report.py
avec n’importe quel éditeur de texte et renseignez votre identifiant / mot de passe Semrush dans les 2 lignes suivantes.
# Input your SemRush Login here semrush_mail ="XXXXXXXXX" semrush_password ="XXXXXXXXXX"
Lancement du script
Ouvrez le terminal, et tapez :
cd /chemindudossier/semrush_reports-master python semrush_report.py
La première ligne permet de se rendre dans le dossier où est situé semrush_report.py
et la deuxième permet de lancer le script. Sur Mac, il faudra taper python3
au lieu de python.
Fonctionnalités
Choix des sites : il est possible de rentrer jusqu’à 5 sites différents. Pour récupérer moins de rapports, il suffit de taper none
lorsqu’un site est demandé afin de passer directement au choix de la base de donnée.
Choix de la base de donnée : une fois vos sites renseignés, vous devez choisir une base de donnée parmi celles proposées. Cette dernière correspond aux 28 pays disponibles sur Semrush sur lesquelles les mots clés et positionnements sont récupérés.
Les entrées ci dessous récupèreront les rapports organiques pour les 3 sites mentionnés sur la France.
Enter your website: amazon.fr Enter second website, (if no website type : "None") : alibaba.com Enter third website, (if no website type : "None") : aliexpress.com Enter fourth website, (if no website type : "None") : none Enter yout Data Base ( ['us', 'uk', 'br', 'ca', 'au', 'fr', 'de', 'it', 'nl', 'es', 'in', 'ru', 'jp', 'tr', 'dk', 'mx', 'ar', 'pl', 'be', 'ie', 'se', 'ch', 'fi', 'hu', 'no', 'il', 'sg', 'hk']) :fr Ok let's go !
Une fois fois le script lancé, laissez le tourner le temps qu’il récupère l’ensemble de vos rapports. A noter que ce dernier vous indique lorsqu’un rapport a été téléchargé.
Récupération des rapports
Les rapports téléchargés se trouvent dans le dossier /excel/
dans /semrush_reports/
Gestion des erreurs
Syntaxe de site : afin de valider l’entrée d’un site, ce dernier doit avoir une syntaxe correcte, sinon le script le détecte et demande de rentrer à nouveau un site.
Rapport sans résultat : si un site ne possède aucun résultat dans Semrush, le script vous en informe et ce dernier continue de télécharger les autres rapports.
Améliorations possibles
Choix du niveau du rapport : domaine racine
/ sous domaine
/ sous dossier
/ URL exacte
. Actuellement le téléchargement se fait au niveau du domaine racine
mais il est assez simple de rajouter une variable afin de choisir le niveau du rapport. Cependant, cela demande de rentrer 1 information supplémentaire par site, ce qui demande plus d’actions de la part de l’utilisateur.
Pour finir
Pourquoi ce script ?
pour aller récupérer simplement et rapidement jusqu’à 5 rapports de positionnement dans Semrush et pour faire d’autres trucs à côté.
Pourquoi ne pas passer par l’API ?
tout le monde n’a pas un compte Semrush avec accès à l’API. De plus chaque appel dans l’API coûte des sous, ici on automatise juste la connexion à Semrush et l’export des rapports.
Rien d’autre ?
nope.
C’est vraiment un tips exceptionnel
Bonjour,
Merci beaucoup pour ce partage ! Cependant, est-il possible de l’utiliser sur un serveur Linux sans GUI ?
J’ai cru voir la possibilité d’installer les drivers chrome sur Linux (cf https://stackoverflow.com/questions/18674092/how-to-implement-chromedriver-in-selenium-in-linux-platform)
Pensez-vous que cela est faisable ?
En vous remerciant
Hello David,
Jamais essayé Linux de mon côté mais Selenium a l’air de tourner dessus : https://towardsdatascience.com/how-to-setup-selenium-on-a-linux-vm-cd19ee47d922
Si jamais tu essayes je serais curieux de voir ce que ça donne.