Tools om het web vast te leggen en te converteren

Web Scraper API voor Python Python Scraper API

Allereerst hier de Web Scraper API voor Python en kijk naar de voorbeeldhandler die zich binnenin bevindt om te beginnen.

Geschraapte gegevens verwerken

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.

ScrapeResult Methods

Hieronder staan ​​alle methoden van de klasse ScrapeResult die kunnen worden gebruikt om scrape-resultaten te verwerken.

  • string getExtension() - krijgt de extensie van elk bestand dat het resultaat is van de scrape.
  • string getFilename() - haalt de bestandsnaam op van elk bestand dat voortkomt uit het schrapen.
  • object toJSON() - converteert elk JSON-bestand als gevolg van de scrape into een object.
  • string toString() - converteert elk bestand dat resulteert uit het schrapen naar een string.
  • xml.etree.ElementTree toXML() - converteert elk XML-bestand dat resulteert uit het schrapen naar een XML-element.
  • boolean save(path) - saves elk bestand dat voortkomt uit het schrapen, retourneert true als het slaagt.

Debugging

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

Een schraapbediening besturen

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.aspx')
}
//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);
}

GrabzItScrapeClient-methoden en eigenschappen

Hieronder vindt u alle methoden en eigenschappen van de klasse GrabzItScrapeClient die kunnen worden gebruikt om de statusschrappen te beheren.

  • GrabzItScrape[] GetScrapes() - retourneert alle gebruikers kladjes als een reeks GrabzItScrape-objecten.
  • GrabzItScrape GetScrape(id) - retourneert een GrabzItScrape-object dat het gewenste schraapsel vertegenwoordigt.
  • SetScrapeProperty(id, property) - stelt de eigendom van een schraapsel en retourneert true indien succesvol.
  • SetScrapeStatus(id, status) - stelt de status in ("Start", "Stop", "Inschakelen", "Uitschakelen") van een scrape en geeft waar terug als succesvol.
  • SendResult(id, resultId) - verzendt het resultaat van een scrape en geeft waar terug als succesvol.
    • De scrape-id en de resultaat-id zijn te vinden via de methode GetScrape.
  • SetLocalProxy(proxyUrl) - stelt de lokale proxyserver in voor alle verzoeken.