Tools zum Erfassen und Konvertieren des Webs

Web Scraper API für Python

Python Scraper API

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.

Verarbeiten Sie verkratzte Daten

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.

ScrapeResult-Methoden

Nachfolgend sind alle Methoden der ScrapeResult-Klasse aufgeführt, die zum Verarbeiten von Scrape-Ergebnissen verwendet werden können.

Fehlerbeseitigung

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

Kratzer kontrollieren

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);
}

Methoden und Eigenschaften von GrabzItScrapeClient

Nachfolgend sind alle Methoden und Eigenschaften der GrabzItScrapeClient-Klasse aufgeführt, mit denen die Status-Scrapes gesteuert werden können.