Ich schreibe etwas Python-Code, um Websites zu scrappen, und was ich am Ende bin, ist eine wachsende Sammlung von benutzerdefinierten Scraper, jeder etwa 50 Linien lange und maßgeschneiderte extrahieren spezifische Informationen von einer bestimmten Website.Muster und Design für Funktionen, die stark voneinander abweichen, aber ähnlich verarbeitet werden
Meine erste Iteration des Programms ist eine riesige Datei, die eine Website als Argument nimmt, und kratzt diese Website, wenn sie es erkennt und benutzerdefinierten Code dafür hat (mithilfe einer riesigen Fallanweisung, ob sie die Website erkennt) .
Offensichtlich ist dies kein großartiges Design, also möchte ich die benutzerdefinierten Scrape-Funktionen in ihre eigenen Dateien/Klassen ziehen und ein kleines Skript haben, mit dem ich sie namentlich nennen kann. Zum Beispiel:
scrape.py --site google
Und ich möchte eine Dateistruktur haben, ähnlich wie:
scrape.py
sites/
google.py
yahoo.py
...
bing.py
Ich habe noch nicht gemeistert Objektorientierung, aber ich erkenne, dass dies für sie ruft aus, und das, wonach ich suche, ist wahrscheinlich ein gemeinsames OO-Muster.
Haben Sie Hilfe dabei, diesen Code korrekt zu refaktorieren?
PS - Ich habe mir Scrapy angeschaut und es ist nicht wirklich das, was ich aus verschiedenen Gründen brauche.
PPS - Ich bin nicht wirklich scraping Suche Websites, ich kratze US-Gericht Websites.
Letztendlich verwendete ich beide Antworten hier, um die [Juriscraper] (https://bitbucket.org/mlissner/juriscraper/) -Bibliothek aufzubauen, aber ich lieh mir etwas mehr aus dieser heraus. Wirklich hilfreiches Zeug, danke! – mlissner