Kom ihåg mig?
Home Menu

Menu


Vilken Scraping-teknik är bäst?

 
Ämnesverktyg Visningsalternativ
Oläst 2011-03-31, 19:19 #1
dAEks avatar
dAEk dAEk är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Dec 2006
Inlägg: 678
dAEk dAEk är inte uppkopplad
Mycket flitig postare
dAEks avatar
 
Reg.datum: Dec 2006
Inlägg: 678
Utan att gå in på vad som är bäst tycker jag att någon form av parser som kan gå igenom DOM-trädet är att föredra. Skriver man en screen-scraper får man vara beredd på att sidorna ändras titt som tätt och då är det verkligen inge kul att sitta med en massa regex.
dAEk är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-03-31, 19:34 #2
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Citat:
Ursprungligen postat av dAEk Visa inlägg
Utan att gå in på vad som är bäst tycker jag att någon form av parser som kan gå igenom DOM-trädet är att föredra. Skriver man en screen-scraper får man vara beredd på att sidorna ändras titt som tätt och då är det verkligen inge kul att sitta med en massa regex.
Det bör väl påpekas att det inte är särskilt ovanligt med en inkorrekt html-struktur.
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-04-01, 20:35 #3
Bjorne Bjorne är inte uppkopplad
Flitig postare
 
Reg.datum: Sep 2009
Inlägg: 374
Bjorne Bjorne är inte uppkopplad
Flitig postare
 
Reg.datum: Sep 2009
Inlägg: 374
Citat:
Ursprungligen postat av tartareandesire Visa inlägg
Det bör väl påpekas att det inte är särskilt ovanligt med en inkorrekt html-struktur.
Det är inget som helst problem för de flesta domparserbibliotek.
Bjorne är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-03-31, 22:55 #4
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Citat:
Ursprungligen postat av dAEk Visa inlägg
Utan att gå in på vad som är bäst tycker jag att någon form av parser som kan gå igenom DOM-trädet är att föredra. Skriver man en screen-scraper får man vara beredd på att sidorna ändras titt som tätt och då är det verkligen inge kul att sitta med en massa regex.
Jag vet inte riktigt hur stor erfarenhet du har av scraping - men utifrån min erfarenhet är det tvärtom. Man blir mycket lättare beroende av korrekt och samma struktur i elementen om man kör en DOM parser snarare än en (lite öppen) regex. Däremot skriver jag mycket hellre en helt straight forward CSS selektor än pillar med bakåtreferenser osv. Däremot finner jag det omständigare än regex med de flesta sätten att traversera dom-trädet.

Det är från att ha haft igång scrapers för diverse funktioner över iallafall 5+ år mot ett bra antal väldigt olika källor. Sajter byter hela systemen oftare än de byter HTML:en lite för mycket i vilket fall, i min erfarenhet.
Clarence är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-04-01, 19:46 #5
dAEks avatar
dAEk dAEk är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Dec 2006
Inlägg: 678
dAEk dAEk är inte uppkopplad
Mycket flitig postare
dAEks avatar
 
Reg.datum: Dec 2006
Inlägg: 678
Bara en sån till synes enkel sak som att validera en e-postadress kräver att man läser uttrycket noga. Trots att formatet är spikat är uttrycket svårt att läsa och samtidigt lätt att tolka fel. Jag kan bara tänka mig hur en regex-scraper för dåligt Html-kodade sidor ser ut... Dom scrapers jag har skrivit har varit för olika privata projekt och jag har testat lite olika sätt att hämta ut informationen. Iofs är jag inte direkt bra på regex men man märker ganska snabbt om det kommer funka med uppdateringar i långa loppet.

Kanske hade jag otur med sajterna som jag läste av men jag tycker ändå att det gick upp för en att det inte är en fråga om utan när man behöver uppdatera koden. När den dagen är kommen vill man som vanlig dödlig helst inte sitta med avancerad regex.
dAEk är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-04-01, 19:49 #6
emilvs avatar
emilv emilv är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Feb 2004
Inlägg: 1 564
emilv emilv är inte uppkopplad
Bara ett inlägg till!
emilvs avatar
 
Reg.datum: Feb 2004
Inlägg: 1 564
Citat:
Ursprungligen postat av dAEk Visa inlägg
Bara en sån till synes enkel sak som att validera en e-postadress kräver att man läser uttrycket noga. Trots att formatet är spikat är uttrycket svårt att läsa och samtidigt lätt att tolka fel. Jag kan bara tänka mig hur en regex-scraper för dåligt Html-kodade sidor ser ut... Dom scrapers jag har skrivit har varit för olika privata projekt och jag har testat lite olika sätt att hämta ut informationen. Iofs är jag inte direkt bra på regex men man märker ganska snabbt om det kommer funka med uppdateringar i långa loppet.

Kanske hade jag otur med sajterna som jag läste av men jag tycker ändå att det gick upp för en att det inte är en fråga om utan när man behöver uppdatera koden. När den dagen är kommen vill man som vanlig dödlig helst inte sitta med avancerad regex.
Min erfarenhet är att det räcker med en eller ett par reguljära uttryck för att tolka en sida. Dagen när man måste uppdatera sin kod kommer nästan oavsett vilken metod man väljer (förutom de mest avancerade automatiska metoderna, som förstår tabeller, rubriker och en massa annat, och som tar månader eller år att skriva). Då ser jag ingen direkt skillnad mellan XPath och reguljära uttryck i svårighetsgrad.
emilv är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-04-02, 13:11 #7
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Citat:
Ursprungligen postat av dAEk Visa inlägg
Bara en sån till synes enkel sak som att validera en e-postadress kräver att man läser uttrycket noga. Trots att formatet är spikat är uttrycket svårt att läsa och samtidigt lätt att tolka fel.

Kanske hade jag otur med sajterna som jag läste av men jag tycker ändå att det gick upp för en att det inte är en fråga om utan när man behöver uppdatera koden. När den dagen är kommen vill man som vanlig dödlig helst inte sitta med avancerad regex.
Sitter du med Xpath-parser blir inte dina uttryck speciellt mycket roligare om du ska ha in lite valfria element, bakåtreferenser, text-parsers osv. Jag skulle snarare säga att du helt plötsligt får ett 5 gånger längre och mångt mycket krångligare uttryck. Eller så får du 5 ggr mer utomstående kod för sträng-hantering och jämförelse, och sedan ett bra antal xpath-uttryck att underhålla paralellt.

Kompetenta programmerare kan gå igenom regex, men en total röra med xpath blir värre.
Clarence är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-04-03, 23:46 #8
dAEks avatar
dAEk dAEk är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Dec 2006
Inlägg: 678
dAEk dAEk är inte uppkopplad
Mycket flitig postare
dAEks avatar
 
Reg.datum: Dec 2006
Inlägg: 678
Citat:
Ursprungligen postat av Clarence Visa inlägg
Jag skulle snarare säga att du helt plötsligt får ett 5 gånger längre och mångt mycket krångligare uttryck. Eller så får du 5 ggr mer utomstående kod för sträng-hantering och jämförelse, och sedan ett bra antal xpath-uttryck att underhålla paralellt.
Jo, men fördelen är att de är lätta att ändra även om det är fler uttryck. Det kanske blir en PITA i långa loppet, jag har inte haft någon scraper i drift som varat så länge. Som sagt, det jag har gjort i det här området är ganska litet och smalt. Det har mer eller mindre handlat om att extrahera statistik eller annan typ av tabelldata och i dom lägena har det varit enklare att använda något annat än regex. Skulle jag skriva en snurra som hämtade ut t.ex. alla e-postadresser på en sida hade jag nog gjort det med regex, så jag antar att det som några redan skrivit stämmer: det beror på fall till fall.

Som tur är finns ju bibliotek som gör livet enklare för utvecklare. För .NET är HtmlAgilityPack och Fizzler två trevliga lösningar. De innebär att man kan använda API:t för det mesta men möjligheten att ställa XPath-frågor mot dokumentet finns fortfarande kvar.
dAEk är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-04-07, 23:29 #9
dAEks avatar
dAEk dAEk är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Dec 2006
Inlägg: 678
dAEk dAEk är inte uppkopplad
Mycket flitig postare
dAEks avatar
 
Reg.datum: Dec 2006
Inlägg: 678
Citat:
Ursprungligen postat av tartareandesire Visa inlägg
Fördelarna uppväger definitivt eventuella nackdelar och är man hyfsat van blir det sällan alltför tidsödande.
Citat:
Ursprungligen postat av dAEk
Kan du nämna några för- resp. nackdelar?
Hallå?


Forumbegränsning: meddelandet måste vara minst 10 tecken långt.
dAEk är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 22:17.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017