Senaste nytt
finewines.se

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

  • Som flera kanske har märkt är sig finewines.se inte sig likt rent utseendemässigt! En uppgradering av forumets mjukvara har genomförts och temat kommer successivt att uppdateras för att bättre matcha vår tidigare färgprofil! Eventuella buggar eller feedback tas tacksamt emot i den här forumtråden!

Hämta/lagra data från systembolaget

perpro

Medlem
@Deppodi frågade om hur man hämtar och lagrar data från systembolet. Jag har inte någon snygg lösning, men ett hack som fungerar:

Har du tillgång till en linux-burk med mysql-databas (ex Rasberry Pi)? Isf är det rätt lätt att hämta data:

Hämta en XML från systembolaget, läggs som lokal fil:
wget http://www.systembolaget.se/Assortment.aspx?Format=Xml
döp om den till något lämpligt (ex. Alla+Artiklar+2014-09-22xml), importera till mysql:

mysql -p -u dahlberg systembolaget -e "load xml infile '/home/perpro/scripts/systemimport/Alla+Artiklar+2014-09-22.xml' into table alla_artiklar rows identified by '<artikel>’;"
I mysql har jag då förberett en tabell med samma fält som finns i XML-filen.
Sedan har jag lagt till en kolumn som innehåller importdatum, som uppdateras genom
mysql -p -u dahlberg systembolaget -e "update alla_artiklar set Datum = ’2014-09-22' where Datum IS NULL;"

Sedan kör jag lite sql-satser för att kolla nya artiklar eller sänkta priser:

mysql -p -u dahlberg systembolaget -e "select a1.Varnummer, a2.Varnummer, a1.Namn, a2.Prisinklmoms - a1.Prisinklmoms as blip, a1.Datum, a2.Datum from alla_artiklar as a1 inner join alla_artiklar as a2 on (a1.Artikelid = a2.Artikelid and a1.Datum < a2.Datum) where a2.Prisinklmoms <> a1.Prisinklmoms and a1.Datum = '2014-09-22’' order by blip" > lower.txt


mysql -p -u dahlberg systembolaget -e "select nr, Varnummer, Namn, Namn2, Prisinklmoms, Saljstart from alla_artiklar as a1 where nr not in (select nr from alla_artiklar where Datum = '2014-09-06') and Datum = '2014-09-22' order by Prisinklmoms" > nytt.txt

Sedan kan man såklart söka på enskilda varunummer och se prisutveckling över tid och göra en massa annat kul.
 

Daniel B

IT- & dryckesnörd
Tekniskt ansvarig
Jag satt med det här i helgen till ett litet småpyssel och skrev ihop ett automatiserat system sombygger en NoSQL-databas i MongoDB som är superenkel att ställa queries mot med JavaScript. Jag tänkte bygga ett REST-api mot det hela och slänga upp det på en AWS EC2 instans. Den bygger på samma .XML-fil som @perpro länkade till ovan.

Någon som är sugen på att hjälpa till? Jag har inte byggt något eget REST-api tidigare men tänkte det kunde vara en rolig grej! =)

Vi skulle kunna bygga en tjänst för FineWines för att lista alla nya lanseringar på ett snyggt sätt!
 
Trådskapare
perpro

perpro

Medlem
Coolt. vinfo.org har ju redan gjort det mesta, och då dog mina ambitioner något. Men det är kul att ha rådatan att leka runt med...Det som saknas i vininfo.org är ju bland annat prissänkningar över tid (tror jag), men annars finns ju det mesta på plats där.
 

kayaker

Cyklist
Det som saknas i vininfo.org är ju bland annat prissänkningar över tid (tror jag), men annars finns ju det mesta på plats där.
Föga förvånande med tanke på den ökade komplexiteten. En traditionell relationsdatabas har ingen inbyggd mekanism för att hantera en sådan historik.
/En som jobbat ett antal år med system där alla ändringar sparades för full spårbarhet
 

Daniel B

IT- & dryckesnörd
Tekniskt ansvarig
Föga förvånande med tanke på den ökade komplexiteten. En traditionell relationsdatabas har ingen inbyggd mekanism för att hantera en sådan historik.
/En som jobbat ett antal år med system där alla ändringar sparades för full spårbarhet

Där har vi fördelen med en NoSQL/dokumentbaserad databas som fallet är med MongoDB, eftersom vi inte låser ett dokument till ett särskilt schema utan kan förändra strukturen helt fritt!
 

Tomas Lindblom

fd Deppodi
Moderator
Är det någon skillnad på om man är medlem på vininfo.org eller inte?
Jag förstod det som att man skulle kunna se om systembolaget nyligen har sänkt en produkt i pris eller inte? Är det så att jag inte ser det för att jag inte är medlem, eller är det så att man varje dag "bara" får en uppdaterad lista med de nya priserna?
 

Tomas Lindblom

fd Deppodi
Moderator
Inte för sökningar. Databasen har ingen prishistorik utan visar bara senaste pris.

Jaha.. Då förstår jag inte meningen med hemsidan! Jag hade velat se vilka priser som Systembolaget har nyligen sänkt i pris.. Just för att kunna göra kap!
 

kayaker

Cyklist
Jaha.. Då förstår jag inte meningen med hemsidan! Jag hade velat se vilka priser som Systembolaget har nyligen sänkt i pris.. Just för att kunna göra kap!
Den skapades för att överhuvudtaget kunna göra vettiga sökningar och kombinerade detta med lite olika betyg på vinerna. SB har förbättrat både sökmöjligheter, upptid och allmän robusthet rätt mycket sedan dess.
 

gece

Man vänjer sig.
Bara för att priset är sänkt behöver det inte vara ett kap!;)
Jag har övervägt att undersöka om man kan bygga en wine-searcher/systembolagmashup där man kan browsa SBs sortiment och se/sortera efter hur konkurrenskraftigt priset är i jämförelse med andra handlare.

Men jag tillbringar oftast hellre mina kvällar på andra vis...
 

Mattias Schyberg

Administratör
Den skapades för att överhuvudtaget kunna göra vettiga sökningar och kombinerade detta med lite olika betyg på vinerna. SB har förbättrat både sökmöjligheter, upptid och allmän robusthet rätt mycket sedan dess.
Herregud! När @kayaker pratar gott om SB då är det högt vatten. Nu behöver vi genast kontra med något negativt för att återställa ordningen! ;)
 

Tomas Lindblom

fd Deppodi
Moderator
Jag har övervägt att undersöka om man kan bygga en wine-searcher/systembolagmashup där man kan browsa SBs sortiment och se/sortera efter hur konkurrenskraftigt priset är i jämförelse med andra handlare.

Men jag tillbringar oftast hellre mina kvällar på andra vis...

Jag kan locka med mitt allra mest smickrande kommentar för att försöka få dig att tänka om; Snälla gör det! :D

Är det någon IT-kunnig som kan förklara hur svårt/stort ett projekt av detta slag skulle vara?
 
Toppen