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.
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.