J'écris du code Python pour gratter des sites Web, et je vais finir par créer une collection croissante de grattoirs personnalisés, chacun d'environ 50 lignes longues et sur mesure extraire des informations spécifiques à partir d'un site Web spécifique. Ma première itération du programme est un fichier géant qui prend un site Web comme argument, et racle ce site Web s'il le reconnaît et a un code personnalisé (en utilisant une déclaration de cas géant pour vérifier s'il reconnaît le site Web) .Motif et conception pour des fonctions très différentes les unes des autres mais traitées de manière similaire
De toute évidence, ce n'est pas une conception géniale, ce que je voudrais faire est de tirer les fonctions de raclage personnalisées dans leurs propres fichiers/classes, et avoir un petit script que je peux utiliser pour les appeler par leur nom. Par exemple:
scrape.py --site google
Je voudrais avoir une structure de fichier similaire à:
scrape.py
sites/
google.py
yahoo.py
...
bing.py
Je ne l'ai pas encore maîtrisé l'orientation objet, mais je reconnais que cela appelle pour elle, et que ce que je cherche est probablement un modèle OO commun.
Toute aide pour obtenir ce code refactorisé correctement? Post-scriptum - J'ai regardé Scrapy, et ce n'est pas vraiment ce dont j'ai besoin pour diverses raisons.
PPS - Je ne suis pas en train de gratter les sites de recherche, je suis en train de gratter les sites Web des tribunaux américains.
En fin de compte, j'ai utilisé les deux réponses ici pour construire la bibliothèque [Juriscraper] (https://bitbucket.org/mlissner/juriscraper/), mais j'ai emprunté plus fortement à celle-ci. Trucs vraiment utiles, merci! – mlissner