![]() |
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 ;-) |
Kan använda regex (Regular Expressions) om du vill.
http://gnosis.cx/publish/programming...pressions.html |
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 |
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. :) |
Välkommer Peter! Trevligt att ha dig i forumet.
|
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 |
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++. |
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.
|
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. |
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.
|
Annars kan man jävlas med PeterM och skicka en Crawler till hans site.
Det kan man göra med xmlhttp (i asp). Då plockar man ut allt man vill ha, och strippar bort resten med regexp. ;) |
Citat:
Inser att mina kunskaper troligtvis inte räcker till, men som tur är finns det andra som har kunskaper... |
Citat:
|
Varför inte?
Spara en massa tid då PeterM har gjort grundjobbet. Nä skojar bara. jag hoppades att ni skulle förstå att mitt inlägg var fyllt av ironi och sarkasm. Du kan ju göra som de flesta har sagt att använda regexp. Om du inte kan använda regexp så finns det verktyg som är skit bra: http://www.regexbuddy.com/ och: http://www.topshareware.com/RegexBud...load-15609.htm för nerladdning. Ha en trevlig påsk och ett glad nytt år. |
Citat:
//Jonas |
CPUhitten är rätt så marginell jämfört med tiden det tar att ladda hem dokument osv.
MMcache är lite lurigt om man inte vet vad man gör.. |
Visst går det att crawla Peters sida och "sno" hans information. Men likaså kan han förstöra hela din sajt genom att ge din agent en annan sida, det hade jag tyckt var skoj, där är bara fantasin som sätter gränser :ph34r:
|
Lite kommentarer:
Innan jag körde mmcache var Apache den stora prestanda boven på prisjakt, dvs PHP:n tog mycket kraft att kompilera. Efter MMCache så märks knappt apache och php av :) Sen har jag ett tips till alla som funderar på att skapa shoppingagenter, ta kontakt med någon som redan har en ;) //Jonas |
Citat:
Verkar vara något att ha... |
mmCache är trevligt, ja. Det (och andra acceleratorer) har räddat många sidor, särskilt de som har väldigt aktiva forum. Jag borde dock kanske säga att mmCache VAR trevligt, eftersom det inte uppdaterats på över ett år då upphovsmannen fick jobb hos Zend för att arbeta på deras kommersiella accelerator.
Det finns dock ett nytt projekt som kanske kan bli något. Ett gäng typer gjort en fork av mmCache (opensource, yadda yadda) som de kallar eaccelerator. De har fixat ett gäng buggar som man kan råka på om man kör PHP 5 och senare versioner av PHP 4. De huserar på sourceforge.net. |
Bara en fundering jag har, eftersom jag själv funderar på att göra en egen agent..
Är det ur ett juridisk perspektiv okej att läsa in andras sidor och plocka ut viss information (t.ex. pris)? Jag antar att det kan jämställas med ett citat (dvs. det är okej att citera en liten del av sidan så länge man upplyser om källan) - men hur är det med själva scanningen av sidan (speciellt om det görs regelbundet)? |
Jag har ett tag funderat på att göra en prisagent inom ett speciellt område....eftersom jag endast kan grunderna inom html m.m så har jag tänkt att jag kommer aldrig klara av att göra en sådan sida. Men är det någon som känner för att lyssna på min ide och kanske samarbeta, hjälpa mig med lite kod m.m så skicka ett pm!
Jag är inte så insatt i det här med prisagenter så min ide kanske inte är bra eller redan finns? /Daniel |
Undrar om man i framtiden kommer se mera av att priset står i en gif bara för att försvåra prisagenter att skanna av sidan.
/Andla |
Citat:
//Björn |
Citat:
Citat:
Eller är det en kombination av alla metoder? |
Citat:
Några prejudikat har jag inte snavat över, men ett enstaka pris som sådant är fakta och jag kan inte se hur det skulle kunna skyddas. En sammanställning av uppgifter kan möjligen ha katalogsskydd, men det skulle jag inte satsa några pengar på. Att häva verkshöjd bör rimligen bara leda till en utskrattning. Återstår att se om något intressant kan komma av Blocket vs. Allaanonnser om det går längre än offentlig armbrytning, även om parallellerna är långt från hundraprocentiga. Parentes. Blocket kunde droppa ett mail till Tradera med flera där de nämner sin avsikt att blockera allaanonnser, hakar de på så är allaanonnser vips så gott som irrelevanta. Citat:
Citat:
Ersättning till medverkande företag? Jösses nej, ska någon part ha ersättning så är det jag! :) |
Citat:
Att inte finnas med innebär bara att man får mindre besökare :rolleyes: De flesta hör av sig och vill vara med nuförtiden :D //Jonas |
Citat:
(nu kan man ladda ner deras prislistor från tradedoubler!) //Jonas |
Alla tider är GMT +2. Klockan är nu 03:51. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson