Permalänk
Medlem

Kolla lagersaldo

Hej,

Kan man på något sätt automatiskt kolla lagerstatus på en speciell produkt på tex Dustin eller inet för att sedan använda på sin egen hemsida? Tex med php eller något liknande?

Permalänk
Medlem

Jag har väldigt svårt att tänka mig att de respektive sidorna skulle tillåta detta om du inte lyckas få till stånd en överrenskommelse med dem.

Visa signatur

Ryzen 3700X | Asus X570-F | 16GB Ballistix Sport LT 3000/15 @3733/16 | Asus Strix GTX 1060 6GB | Fractal Design R6C | Noctua NH-D15 | Corsair RM650x | 4TB SSD av varierad kvalisort | Asus VG279QM | Ducky One 2 | CM MM720

Permalänk
Medlem
Skrivet av twit:

Jag har väldigt svårt att tänka mig att de respektive sidorna skulle tillåta detta om du inte lyckas få till stånd en överrenskommelse med dem.

Det finns alltså inget sätt att ta den lagerstatus som visas på hemsidan när man kollar en produkt? Hur funkar då tex prisjakt?

Permalänk
Medlem
Skrivet av V_Persie:

Det finns alltså inget sätt att ta den lagerstatus som visas på hemsidan när man kollar en produkt? Hur funkar då tex prisjakt?

http://www.prisjakt.nu/info.php?t=for_stores_price

Visa signatur

Ryzen 3700X | Asus X570-F | 16GB Ballistix Sport LT 3000/15 @3733/16 | Asus Strix GTX 1060 6GB | Fractal Design R6C | Noctua NH-D15 | Corsair RM650x | 4TB SSD av varierad kvalisort | Asus VG279QM | Ducky One 2 | CM MM720

Permalänk
Medlem

Man måste alltså få tillgång till den filen hos det företaget man vill ha koll på lagerstatus hos? Det är enda sättet?

Permalänk
Avstängd
Skrivet av V_Persie:

Hej,

Kan man på något sätt automatiskt kolla lagerstatus på en speciell produkt på tex Dustin eller inet för att sedan använda på sin egen hemsida? Tex med php eller något liknande?

Jarå, allt är möjligt

Visa signatur

Dator:
CPU: Intel Sandybridge Core i7 2600k @4,5ghz 1.38v | GPU: HIS 6970 @ 960/5000 | RAM: Corsair Vengance 8gb @ 1600mhz MOBO: ASrock z68 mITX HT CHASSI: Silverstone Sugo SG08.

Permalänk
Medlem
Skrivet av V_Persie:

Man måste alltså få tillgång till den filen hos det företaget man vill ha koll på lagerstatus hos? Det är enda sättet?

Ehm nej, det var ett svar på din fråga om hur Prisjakt får sin information. Naturligtvis finns det andra sätt (varav jag inte är kompetent nog att nämnda ett enda) men dels kommer varje företag som märker av att någon utan tillåtelse plockar specifik information från deras sida blocka denne person, dels kan det finnan en rent laglig aspekt om du behöver ta dig runt exempelvis skydd mot intrång. Jag är dock verkligen inte kompetent på områden utan det blir väldigt trevande och generella svar

Är det ett seriöst projekt är därför mitt förslag återigen att ta kontakt med de berörda företagen.

Visa signatur

Ryzen 3700X | Asus X570-F | 16GB Ballistix Sport LT 3000/15 @3733/16 | Asus Strix GTX 1060 6GB | Fractal Design R6C | Noctua NH-D15 | Corsair RM650x | 4TB SSD av varierad kvalisort | Asus VG279QM | Ducky One 2 | CM MM720

Permalänk
Medlem
Skrivet av ekbloms:

Jarå, allt är möjligt

Tex hur?

Skrivet av twit:

Ehm nej, det var ett svar på din fråga om hur Prisjakt får sin information. Naturligtvis finns det andra sätt (varav jag inte är kompetent nog att nämnda ett enda) men dels kommer varje företag som märker av att någon utan tillåtelse plockar specifik information från deras sida blocka denne person, dels kan det finnan en rent laglig aspekt om du behöver ta dig runt exempelvis skydd mot intrång. Jag är dock verkligen inte kompetent på områden utan det blir väldigt trevande och generella svar

Är det ett seriöst projekt är därför mitt förslag återigen att ta kontakt med de berörda företagen.

Ok, då förstår jag. Tack för hjälpen

Permalänk
Medlem

Inga större problem, slänge ihop denna på 5 minuter, helt otestad, pajar säkert, men funkar för ett proof of concept på php

http://swecc.host56.com/?prod=5010109968

byt ut mot valfritt artikelnummer.

Permalänk
Medlem
Skrivet av BasseBaba:

Inga större problem, slänge ihop denna på 5 minuter, helt otestad, pajar säkert, men funkar för ett proof of concept på php

http://swecc.host56.com/?prod=5010109968

byt ut mot valfritt artikelnummer.

Du skulle inte kunna berätta hur du gjorde eller kanske dela med dig av koden? Det skulle uppskattas.

Permalänk
Hedersmedlem
Skrivet av V_Persie:

Du skulle inte kunna berätta hur du gjorde eller kanske dela med dig av koden? Det skulle uppskattas.

Om man vet adressen till sidan med den information man är ute efter är det lätt att i php, till exempel med file_get_contents läsa in den. Sedan behöver du bara lista ut vad i den det är du behöver och extrahera det ur textsträngen.

Permalänk
Medlem
Skrivet av V_Persie:

Du skulle inte kunna berätta hur du gjorde eller kanske dela med dig av koden? Det skulle uppskattas.

Problemet är att det nog är en 7-8 år sen jag kodade PHP lite mer seriöst, så är ju inte direkt finkod.

Precois som Elgot säger så är det en flerstegsraket:
1. Förstå vad det är för något man ska leta efter
2. Läsa ner den aktuella websidan
3. Matcha mot vad det nu är man letar efter.

Lite snabb efterforskning (och den största bristen i min kod för tillfället) gav följande:
* Adressen är av typen: http://www.dustinhome.se/product/<produktnummer>

Kollar man sedan alla 3 sidor, lager, 1-2 dagar och ej i lager hittar man följande:

<div id="cphMain_divAvl" style="float:left; margin: 2px 6px 0 0;clear:both;" class="notInStL"></div><p class="strong">Ej i lager</p> <div id="cphMain_divAvl" style="float:left; margin: 2px 6px 0 0;clear:both;" class="inStL"></div><p class="strong">I lager</p> <div id="cphMain_divAvl" style="float:left; margin: 2px 6px 0 0;clear:both;" class="inStExL"></div><p class="strong">1-2 dagar</p>

Vad man då enkelt ser är att div:en dom (förmodligen orkar inte kolla CSS:en) använder för att visa ikonen för status har 3 olika klasser:
notInStL
inStL
inStExL

Det hela är då alltså inte svårare än att:
1. Hämta ner innehållet
2. matcha mot nån av dom 3 strängarna

EDIT: Givetvis går det att matcha mot "I lager", "ej i lager" osv likaså, gäller bara ha baguetten rätt i handen så man inte matchar "ej i lager" mot "i lager" osv.. gillar därför approachen med att plocka "class" från div:en bättre...

Men tyvärr är detta en lite shaky metod, ett problem är t ex att dom har massa andra "rekommenderade" produkter.
Dock verkar vi ha lite tur, om vi kollar på den koden:

<div id="cphMain_ucMostPopularList_rptProductUpsaleList_divAvail_0" style="display: inline-block; float: left; margin: 0 6px 0 0;" class="inSt" title="I lager"

Den klassen har alltså inte ett L, som jag misstänker står för "LARGE"....
Men det var ren lotto... Hade denna sido-meny använt sig av samma klass så hade det kunnat ta in en osäkerhet på vad det egentligen är vi lyckas matcha mot.

Det finns betydligt bättre sätt att göra detta på, det finns ramverk för att parsa html-källkod och läsa ut info.
En bättre approach vore att explicit läsa ut klassen från div:en med id "cphMain_divAvl" för att vara mer säker på att det är rätt info vi hämtar ut.... Blir lite mer jobb, en bättre regexp eller som sagt använda nån redan färdig kod för detta ändamål.

Som sagt, ugly code
Edit2: körde på Elgots funktion för att förvirra mindre..

<?php $prod_id = $_GET["prod"]; $url = "http://www.dustinhome.se/product/" . $prod_id; echo "$url"; echo "<br />"; $str = file_get_contents($url); if(preg_match('/inStL/', $str)) { echo "I Lager"; } else if (preg_match('/inStExL/', $str)) { echo "1-2 dagar"; } else if (preg_match('/notInStL/', $str)) { echo "Ej i lager"; } else { echo "fett me error jau!111111"; } ?>

Permalänk
Medlem

Tänk er för en extra gång bara. Nu var det ett tag sedan jag läste IT juridik men det där med att ta information från en sida och använda på sin egen finns det lagar kring. Lagarna kring upphovsrätt av material publicerat på webben är rätt komplicerade vad jag minns. Men de är till för att skydda den som sitter på informationen så att säga, inte den som kan tänkas vilja använda den. De är speciellt stränga om informationen ska användas kommersiellt, vilket det inte framgår om du tänker göra. Det kan mycket väl kunna vara ett lagbrott och straffbart.

Sen är jag inte säker på att onlinebutiker så som Dustin och Inet bryr sig om man sprider vidare deras lagersaldon. Men jag skulle ändå överväga att be dem om tillstånd först bara utifall att.

Visa signatur

He who hasn't hacked assembly language as a youth has no heart. He who does so as an adult has no brain.
~John Moore