Zunächst herunterladen Sehen Sie sich die Web Scraper-API für Python an und beginnen Sie mit dem Beispielhandler, der sich im Inneren befindet.
Der einfachste Weg, um verkratzte Daten zu verarbeiten, besteht darin, auf die Daten als JSON- oder XML-Objekt zuzugreifen, da dies eine einfache Manipulation und Abfrage der Daten ermöglicht. Der JSON wird im folgenden allgemeinen Format mit dem Dataset-Namen als Objektattribut strukturiert. Er enthält selbst ein Array von Objekten, wobei jeder Spaltenname ein anderes Attribut ist.
{ "Dataset_Name": [ { "Column_One": "https://grabz.it/", "Column_Two": "Found" }, { " Column_One": "http://dfadsdsa.com/" , "Column_Two" : "Missing" }] }
Zuallererst muss beachtet werden, dass dem Handler alle verkratzten Daten gesendet werden, einschließlich Daten, die nicht in JSON- oder XML-Objekte konvertiert werden können. Daher muss die Art der Daten, die Sie erhalten, vor der Verarbeitung überprüft werden.
scrapeResult = ScrapeResult.ScrapeResult() if scrapeResult.getExtension() == 'json': json = scrapeResult.toJSON() for json["Dataset_Name"] in obj: if obj["Column_Two"] == "Found": #do something else: #do something else else: #probably a binary file etc save it scrapeResult.save("results/"+scrapeResult.getFilename())
Das obige Beispiel zeigt, wie alle Ergebnisse des Datensatzes durchlaufen werden Dataset_Name
und führen Sie spezifische Aktionen aus, die vom Wert des Column_Two
Attribut. Auch wenn die vom Handler empfangene Datei keine JSON-Datei ist, ist es einfach saved zum Ergebnisverzeichnis. Während die ScrapeResult-Klasse versucht sicherzustellen, dass alle veröffentlichten Dateien von GrabzIt-Servern stammen, sollte die Erweiterung der Dateien ebenfalls überprüft werden, bevor sie vorliegen saved.
Nachfolgend sind alle Methoden der ScrapeResult-Klasse aufgeführt, die zum Verarbeiten von Scrape-Ergebnissen verwendet werden können.
Der beste Weg, um Ihren Python-Handler zu debuggen, ist das Herunterladen der Ergebnisse für ein Scrape von der Web-Scrapes Seite save die Datei, mit der Sie ein Problem haben, an einen zugänglichen Speicherort und übergeben Sie den Pfad dieser Datei an den Konstruktor der ScrapeResult-Klasse. Auf diese Weise können Sie Ihren Handler debuggen, ohne jedes Mal ein neues Scrape ausführen zu müssen, wie unten gezeigt.
scrapeResult = ScrapeResult.ScrapeResult("data.json"); #the rest of your handler code remains the same
Mit der Web Scraper API für Python von GrabzIt können Sie ein Scrape bei Bedarf remote starten, stoppen, aktivieren oder deaktivieren. Dies wird im folgenden Beispiel gezeigt, in dem die ID des Scrapes zusammen mit dem neuen Scrape-Status an das übergeben wird SetScrapeStatus
Methode.
client = GrabzItScrapeClient.GrabzItScrapeClient("Sign in to view your Application Key", "Sign in to view your Application Secret") //Get all of our scrapes myScrapes = client.GetScrapes() if (len(myScrapes) == 0) { raise Exception('You have not created any scrapes yet! Create one here: https://grabz.it/scraper/scrape/') } //Start the first scrape client.SetScrapeStatus(myScrapes[0].ID, "Start") if (len(myScrapes[0].Results) > 0) { //re-send first scrape result if it exists client.SendResult(myScrapes[0].ID, myScrapes[0].Results[0].ID); }
Nachfolgend sind alle Methoden und Eigenschaften der GrabzItScrapeClient-Klasse aufgeführt, mit denen die Status-Scrapes gesteuert werden können.