Dataskrapning
Dataskrapning är en teknik där ett datorprogram extraherar data från läsbar utdata från ett annat program.
Beskrivning
Normalt sker dataöverföring mellan program med hjälp av datastrukturer lämpade för automatiserad behandling av datorer , inte människor. Sådana utbytesformat och protokoll är vanligtvis strikt strukturerade, väldokumenterade, lätta att analysera och minimerar tvetydighet. Mycket ofta är dessa sändningar inte alls läsbara för människor.
Sålunda är nyckelelementet som skiljer dataskrapning från vanlig analys att utdata som skrapas är avsedd att visas för en slutanvändare , snarare än som en indata till ett annat program. Den är därför vanligtvis varken dokumenterad eller strukturerad för bekväm analys. Dataskrapning innebär ofta att man ignorerar binär data (vanligtvis bilder eller multimediadata), visningsformatering , redundanta etiketter, överflödiga kommentarer och annan information som antingen är irrelevant eller hindrar automatiserad bearbetning.
Dataskrapning görs oftast antingen för att ansluta till ett äldre system , som inte har någon annan mekanism som är kompatibel med nuvarande hårdvara , eller för att ansluta till ett tredjepartssystem som inte tillhandahåller ett mer bekvämt API . I det andra fallet kommer operatören av tredjepartssystemet ofta att se skärmskrapning som oönskad , på grund av orsaker som ökad systembelastning, förlust av annonsintäkter eller förlust av kontroll över informationsinnehållet.
Dataskrapning anses allmänt vara en ad hoc , oelegant teknik, som ofta endast används som en "sista utväg" när ingen annan mekanism för datautbyte är tillgänglig. Bortsett från de högre programmerings- och bearbetningskostnaderna ändrar utdataskärmar avsedda för mänsklig konsumtion ofta struktur. Människor kan lätt hantera detta, men ett datorprogram kommer att misslyckas. Beroende på kvaliteten och omfattningen av felhanteringslogik som finns i datorn, kan detta fel resultera i felmeddelanden, korrupt utdata eller till och med programkraschar .
Tekniska varianter
Skärmskrapning
Även om användningen av fysisk " dum terminal " IBM 3270s sakta minskar, eftersom fler och fler stordatorapplikationer skaffar webbgränssnitt , fortsätter vissa webbapplikationer bara att använda tekniken med skärmskrapa för att fånga gamla skärmar och överföra data till moderna front-ends .
Skärmskrapning associeras normalt med den programmatiska insamlingen av visuell data från en källa, istället för att tolka data som vid webbskrapning. Ursprungligen skärmskrapning till praxis att läsa textdata från en datorskärmsterminals skärm . Detta gjordes vanligtvis genom att läsa terminalens minne genom dess extra port eller genom att ansluta terminalutgångsporten på ett datorsystem till en ingångsport på en annan. Termen skärmskrapning används också ofta för att hänvisa till dubbelriktat utbyte av data. Detta kan vara de enkla fallen där det kontrollerande programmet navigerar genom användargränssnittet, eller mer komplexa scenarier där det kontrollerande programmet matar in data i ett gränssnitt som är avsett att användas av en människa.
Som ett konkret exempel på en klassisk skärmskrapa, betrakta ett hypotetiskt äldre system från 1960-talet - början av datoriserad databehandling . Dator-till- användargränssnitt från den eran var ofta helt enkelt textbaserade dumma terminaler som inte var mycket mer än virtuella teleprinters (sådana system används fortfarande idag, av olika anledningar). Önskan att koppla ett sådant system till mer moderna system är vanligt. En robust lösning kräver ofta saker som inte längre är tillgängliga, såsom källkod , systemdokumentation , API :er eller programmerare med erfarenhet av ett 50 år gammalt datorsystem . I sådana fall kan den enda genomförbara lösningen vara att skriva en skärmskrapa som "låtsas" vara en användare på en terminal. Skärmskrapan kan ansluta till det äldre systemet via Telnet , emulera de tangenttryckningar som behövs för att navigera i det gamla användargränssnittet, bearbeta den resulterande visningsutgången, extrahera önskad data och skicka den vidare till det moderna systemet. En sofistikerad och motståndskraftig implementering av detta slag, byggd på en plattform som ger den styrning och kontroll som krävs av ett större företag – t.ex. förändringskontroll, säkerhet, användarhantering, dataskydd, operationell revision, lastbalansering och köhantering, etc. – skulle kunna sägs vara ett exempel på robotic process automation software, kallad RPA eller RPAAI för självstyrd RPA 2.0 baserad på artificiell intelligens .
På 1980-talet visade finansiella dataleverantörer som Reuters , Telerate och Quotron data i 24×80-format avsett för en mänsklig läsare. Användare av denna data, särskilt investeringsbanker , skrev ansökningar för att fånga in och konvertera denna karaktärsdata som numerisk data för att inkluderas i beräkningar för handelsbeslut utan att omkoda data. Den vanliga termen för denna praxis, särskilt i Storbritannien , var sidförstöring , eftersom resultaten kunde föreställas ha passerat genom en pappersförstörare . Internt använde Reuters termen "logicized" för denna konverteringsprocess och körde ett sofistikerat datorsystem på VAX/VMS som kallas Logicizer.
Mer moderna skärmskrapningstekniker inkluderar att fånga bitmappsdata från skärmen och köra den genom en OCR- motor, eller för vissa specialiserade automatiserade testsystem, matcha skärmens bitmappsdata mot förväntade resultat. Detta kan kombineras i fallet med GUI -applikationer, med att fråga efter de grafiska kontrollerna genom att programmatiskt erhålla referenser till deras underliggande programmeringsobjekt . En sekvens av skärmar fångas automatiskt och konverteras till en databas.
En annan modern anpassning till dessa tekniker är att använda, istället för en sekvens av skärmar som indata, en uppsättning bilder eller PDF-filer, så det finns vissa överlappningar med generisk "dokumentskrapning" och rapportbrytningstekniker .
Det finns många verktyg som kan användas för skärmskrapning.
Web skrapning
Webbsidor är byggda med hjälp av textbaserade märkningsspråk ( HTML och XHTML ), och innehåller ofta en mängd användbar data i textform. De flesta webbsidor är dock utformade för mänskliga slutanvändare och inte för att underlätta automatisk användning. På grund av detta skapades verktygssatser som skrapar webbinnehåll. En webbskrapa är ett API eller verktyg för att extrahera data från en webbplats. Företag som Amazon AWS och Google tillhandahåller webbskrapningsverktyg , tjänster och offentlig data tillgänglig utan kostnad för slutanvändare. Nyare former av webbskrapning innebär att man lyssnar på dataflöden från webbservrar. JSON används till exempel ofta som en transportlagringsmekanism mellan klienten och webbservern.
Nyligen har företag utvecklat webbskrapningssystem som förlitar sig på att använda tekniker i DOM-parsning, datorseende och naturlig språkbehandling för att simulera den mänskliga bearbetningen som sker när man tittar på en webbsida för att automatiskt extrahera användbar information.
Stora webbplatser använder vanligtvis defensiva algoritmer för att skydda sina data från webbskrapor och för att begränsa antalet förfrågningar som ett IP- eller IP-nätverk kan skicka. Detta har orsakat en pågående kamp mellan webbplatsutvecklare och skrapande utvecklare.
Rapportera gruvdrift
Rapportbrytning är utvinning av data från läsbara datorrapporter. Konventionell dataextraktion kräver en anslutning till ett fungerande källsystem, lämpliga anslutningsstandarder eller ett API och vanligtvis komplexa frågor. Genom att använda källsystemets standardrapporteringsalternativ och dirigera utdata till en spoolfil istället för till en skrivare , kan statiska rapporter genereras lämpliga för offlineanalys via rapportutvinning. Detta tillvägagångssätt kan undvika intensiv CPU- användning under kontorstid, kan minimera slutanvändarlicenskostnader för ERP- kunder och kan erbjuda mycket snabb prototypframställning och utveckling av anpassade rapporter. Medan dataskrapning och webbskrapning involverar interaktion med dynamisk utdata, innebär rapportutvinning att extrahera data från filer i ett läsbart format som HTML , PDF eller text. Dessa kan enkelt genereras från nästan alla system genom att fånga upp datamatningen till en skrivare. Detta tillvägagångssätt kan ge en snabb och enkel väg för att erhålla data utan att behöva programmera ett API till källsystemet.
Se även
- Jämförelse av foderaggregatorer
- Datarensning
- Data mumlande
- Importör (dator)
- Informationsextraktion
- Öppna data
- Mashup (webbapplikationshybrid)
- Metadata
- Web skrapning
- Sökmotorskrapning
Vidare läsning
- Hemenway, Kevin och Calishain, Tara. Spidering Hacks . Cambridge, Massachusetts: O'Reilly, 2003. ISBN 0-596-00577-6 .