Allereerst Download de Web Scraper API voor Python en kijk naar de voorbeeldhandler die zich binnenin bevindt om te beginnen.
De eenvoudigste manier om geschraapte gegevens te verwerken, is toegang tot de gegevens als een JSON- of XML-object, omdat de gegevens hierdoor gemakkelijk kunnen worden gemanipuleerd en opgevraagd. De JSON zal worden gestructureerd in het volgende algemene formaat met de gegevenssetnaam als het objectkenmerk, dat zelf een reeks objecten bevat met elke kolomnaam als een ander kenmerk.
{ "Dataset_Name": [ { "Column_One": "https://grabz.it/", "Column_Two": "Found" }, { " Column_One": "http://dfadsdsa.com/" , "Column_Two" : "Missing" }] }
Allereerst moet worden bedacht dat de handler alle geschraapte gegevens zal ontvangen, waaronder mogelijk gegevens die niet kunnen worden geconverteerd naar JSON- of XML-objecten. Daarom moet het type gegevens dat u ontvangt, worden gecontroleerd voordat deze worden verwerkt.
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())
Het bovenstaande voorbeeld laat zien hoe u alle resultaten van de gegevensset kunt doorlopen Dataset_Name
en specifieke acties uitvoeren, afhankelijk van de waarde van de Column_Two
attribuut. Ook als het door de handler ontvangen bestand geen JSON-bestand is, dan is het gewoon saved naar resultatenmap. Hoewel de ScrapeResult-klasse probeert ervoor te zorgen dat alle geposte bestanden afkomstig zijn van de servers van GrabzIt, moet de extensie van de bestanden ook worden gecontroleerd voordat ze saved.
Hieronder staan alle methoden van de klasse ScrapeResult die kunnen worden gebruikt om scrape-resultaten te verwerken.
De beste manier om uw Python-handler te debuggen is door de resultaten voor een scrape van de te downloaden web krassen pagina, save het bestand waarmee u een probleem ondervindt naar een toegankelijke locatie en geef het pad van dat bestand door aan de constructor van de klasse ScrapeResult. Hiermee kunt u uw handler debuggen zonder dat u elke keer opnieuw hoeft te krabben, zoals hieronder wordt weergegeven.
scrapeResult = ScrapeResult.ScrapeResult("data.json"); #the rest of your handler code remains the same
Met de Web Scraper API van GrabzIt voor Python kunt u een scrape op afstand starten, stoppen, activeren of deactiveren. Dit wordt getoond in het onderstaande voorbeeld waar de ID van het schrapen samen met de nieuwe schraapstatus wordt doorgegeven aan de 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); }
Hieronder vindt u alle methoden en eigenschappen van de klasse GrabzItScrapeClient die kunnen worden gebruikt om de statusschrappen te beheren.