Kom ihåg mig?
Home Menu

Menu


Skapa egen prisagent

 
Ämnesverktyg Visningsalternativ
Oläst 2004-12-27, 22:08 #1
N!cklas N!cklas är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Mar 2004
Inlägg: 865
N!cklas N!cklas är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Mar 2004
Inlägg: 865
Har en liten idé om ett ämne som skulle ha nytta av en prisagent typ prisjakt, kelkoo osv. Har inte en aning om hur jag kodar den själv, så den möjligheten är borta... Är det någon som har koll på hur de får in sina priser? Har läst att en del sker genom csv-filer eller liknande, men de har även spindlar/agenter som går över sajter och hämtar de uppgifter de vill ha. Var kan man hitta mer info om denna typ av spindel/agent?
Tacksam för alla svar...som berör ämnet ;-)
N!cklas är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-12-27, 22:47 #2
Jawns avatar
Jawn Jawn är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Aug 2004
Inlägg: 986
Jawn Jawn är inte uppkopplad
Mycket flitig postare
Jawns avatar
 
Reg.datum: Aug 2004
Inlägg: 986
Kan använda regex (Regular Expressions) om du vill.

http://gnosis.cx/publish/programming...pressions.html
Jawn är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-12-27, 22:59 #3
N!cklas N!cklas är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Mar 2004
Inlägg: 865
N!cklas N!cklas är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Mar 2004
Inlägg: 865
Tack för tipset! Tyvärr fattade jag inte mycket av det jag läste... så jag får läsa vidare och klura lite

Tar gärna emot fler tips
N!cklas är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-12-28, 07:37 #4
PeterM PeterM är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 56
PeterM PeterM är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 56
Ah, ett ämne jag har en del insikt i.

Prisuppgifter hämtas precis som du hört antingen via prislistor som företaget tillhandahåller eller genom att man skickar en spindel/crawler/agent (kärt barn...) att läsa av sidor i företagets webshop. För att få med så många företag som möjligt så måste man antagligen använda båda metoderna, fördelningen för de olika metoderna är för Buggys del ungefär 50-50.

Större företag är vanligen bra på skapa och ge tillgång till prislistor som är enkla att läsa av automatiskt. Mindre företag saknar tyvärr ofta teknisk kompetens för detta, eller har så dålig struktur på sina databaser att de data man kan plocka ur dem är oanvändbar. Skräckexemplet är företag som inte använder någon databas, utan har använt Word för att skapa sidor till sina webshoppar. Den "html" som Word genererar kan man bli blind av...

Det finns en hel del att läsa om agentteknik, men det mesta är av helt akademisk natur. En agent är ett program som vilket annat som helst och inte särskilt märkvärdigt. De går att koda i vilket språk som helst, men vissa språk är givetvis bättre lämpade än andra. Agenter måste specialkodas för sitt syfte. En all-in-one agent som kan hantera allt från begagnade bilar till väderprognoser finns inte. Någon egentlig intelligens har de givetvis inte, utan reagerar bara på de data de behandlar utifrån villkor man ställer upp. Vissa menar att en agent ska ta egna initiativ för att vara en "egentlig" agent. Om du till exempel startar ditt mailprogram och kollar din mail varje vardag under lunchen så skulle en agent kunna notera det och fråga om du vill automatisera det.


En crawlers/agents datainhämtning är enkel att beskriva med lite pseudo-kod. Kan givetvis göras på tusen andra sätt.

[Start]
Definiera en startadress.
Definiera vad som utgör intressant data (ofta med hjälp av regexp, precis som Jawn skriver i sitt inlägg).
Definiera hur länkar att följa ska se ut (regexp även här).

[Inledning]
Sidan på startadressen hämtas.
Identifiera och spara intressant data.
Identifiera och spara länkar att besöka härnäst.

[Loop]
Hämta sida från lista över adresser.
Identifiera och spara intressant data.
Identifiera och spara länkar att besöka härnäst.
[/Loop]

[Slut]
Avsluta när listan över adresser att besöka är tom eller något annat villkor är sant.


Det var grundkursen i alla fall.
PeterM är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-12-28, 08:26 #5
Helix Helix är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Dec 2003
Inlägg: 2 829
Helix Helix är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Dec 2003
Inlägg: 2 829
Välkommer Peter! Trevligt att ha dig i forumet.
Helix är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-12-28, 09:12 #6
N!cklas N!cklas är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Mar 2004
Inlägg: 865
N!cklas N!cklas är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Mar 2004
Inlägg: 865
Peter - det var nog det mest uttömmande svar jag någonsin fått på ett forum!! Tack!

Instämmer med MusikGuru att det är trevligt att ha dig här. Buggy är ett
givet bokmärke och en sajt att besöka så fort man ska handla dataprylar
N!cklas är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-12-28, 10:16 #7
jimmies avatar
jimmie jimmie är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 751
jimmie jimmie är inte uppkopplad
Mycket flitig postare
jimmies avatar
 
Reg.datum: Oct 2004
Inlägg: 751
Som det redan har omtalats här så är det regular expressions som gäller. Jag rekomenderar PCRE (Perl Compatible Regular Expressions) för de är effektivare. Jag skulle rekomendera att om du vill göra allt så optimerat som möjligt att du köper en bok som tar upp ämnet regular expressions.

Om man vill skapa en tjänst likt pricerunner så _måste_ man kan regular expressions. Dels för att hämta prisinformationen och dels för att kunna hämta produktinformationen från tillverkarens hemsida. Mycket energi måste också läggas på felhantering så att ett litet fel inte förstör hela uppdateringen.

Kan också berätta att jag är i fasen att utveckla en prisagent. Har tidigare gjort en prototyp i ASP men nu ska jag göra en "live" version i PHP. Jag har domänerna prisagent.com och prisagent.se

Får jag fråga vilket språk buggys agent är i? Vet att hemsidan är i PHP men tänkte kanske att agenten var skriven i något "vanligt" programmeringsspråk som t.ex. Delphi eller C++.
jimmie är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-12-28, 15:39 #8
PeterM PeterM är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 56
PeterM PeterM är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 56
Buggy använder PHP till precis allt. Prestanda skulle kunna förbättras med ett språk som kompileras, men slipper jag hela kompilerings-cykeln så tar jag gärna en prestanda-hit. En normal refresh av samtliga priser tar ändå inte mer än fem minuter, och då är det oftast nätverket som är flaskhalsen.
PeterM är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-12-28, 16:54 #9
grazzy grazzy är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Mar 2004
Inlägg: 3 471
grazzy grazzy är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Mar 2004
Inlägg: 3 471
För att ge mig in i debatten

Jag måste avråda något från att använda regexp då det är betydligt svårare att definera bra regexp (såvida man inte är superduperduktig på det, och då har jag ändå sysslat med regexps etc i nästan fyra år). Istället finns det för framförallt Perl superbra verktyg för att parsa just HTML.

Verktyget som jag använder är HTML::TokeParser på http://search.cpan.org/~gaas/HTML-Parser-3...L/TokeParser.pm

Nu är det kanske inget alternativ om man inte vill lära sig perl, men för dem med möjligheter till det så rekommenderar jag verkligen den här metoden över tex att parsa själv med regexp av flera anledningar.

- Tiden det tar att utveckla.
- Stabiliteten, om du skriver ett script som läser alla <a>-taggar så kan du vara säker på att det alltid funkar även om tex en tagg inte är stängd.
- Flexibiliteten.

Mina .2 kronor.
grazzy är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-12-28, 22:43 #10
PeterM PeterM är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 56
PeterM PeterM är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 56
Alla sätt är bra, osv. För egen del har jag inte ens skrivit någon parser utan kastar bort precis all html förutom just länkar i ett första pass. I andra passet identifieras priser och i tredje passet slås priser samman med produktnamn och annan tillgänglig data till en produkt att lägga in i databasen. Jag behöver sällan över 10 rader kod för att åstadkomma detta.
PeterM ä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 14:13.

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