Pages :: 1
Hello,
j'avais besoin de me faire un petit script de combinaison de mot clé, un peu plus avancé.
Je vous le livre ici, il est tout frais
Il faut python 3 pour l'utiliser
Il faut un fichier template qui liste les combinaisons à faire, et, pour chaque variable du fichier template, une liste de mots clés dans un fichier du même nom.
exemple d'une ligne dans le fichier template :
{%action.txt} {%produit.txt} de la marque {%marque.txt} chez {%vendeur.txt}
la ligne réalisera toutes les combinaisons possibles en fonction des expressions contenues dans action.txt, produit.txt, marque.txt et vendeur.txt
En espérant que ca vous plaise
Les script :
from itertools import product
import re
import argparse
def combine(expression):
pattern = re.compile('{%([^}]+?)}')
swaps = re.findall(pattern, expression)
tpl = re.sub(pattern,'{}', expression)
for pr in product(*[read_swaps(swap) for swap in swaps]):
yield tpl.format(*pr) +'\n'
def read_swaps(swap_file):
with open(swap_file) as f:
for line in f:
yield line.strip('\n')
if __name__ == '__main__':
parser = argparse.ArgumentParser(prefix_chars='-', description=
"""make keyword combination by substituting
in the template file, each {%filename.txt} with the list of
keyword contained in filename.txt and the making the cartesian product.
Example of possible lines :
* Buy {%product.txt} {%color.txt} at the cheapest price
* {%brand.txt} : find the best {%product}""")
parser.add_argument('tpl_file', help='kewyord_combinator template_file.txt')
parser.add_argument('-o', '--output', help='change default file output', default='result.txt')
args = parser.parse_args()
with open(args.tpl_file) as f_tpl:
with open(args.output, mode='w') as f_out:
for line in f_tpl:
f_out.writelines(combine(line.strip('\n')))
🔴 Hors ligne
Hello @ZeNobral, super pratique merci pour le partage.
Juste pour bien comprendre, ton template tu le mets où ?
Work Hard In Silence, Let Success Make The Noise !
--> cedricguerin.fr
🔴 Hors ligne
Hello!
tu mets le template en argument du script.
si tu as appelé le fichier 'combinator.py' et ton fichier de template, 'template.txt' cela donne :
* combinator.py template.txt
ou :
* combinator.py template.txt -o resultats.txt (si tu veux forcer le nom du fichier de sortie sinon les résultats sont mis dans le fichier 'results.txt' par défaut
les fichiers textes avec les listes de mots clés doivent être dans le même répertoire que le script.
à dispo !
🔴 Hors ligne
🔴 Hors ligne
Automatisation puissante et simple des tâches web avec Zennoposter
http://zennolab.com/en/buy-it-now/versi … 0290a31898
Skype : laurent_sauvage
🔴 Hors ligne
🔴 Hors ligne
Work Hard In Silence, Let Success Make The Noise !
--> cedricguerin.fr
🔴 Hors ligne
Pages :: 1