Hoe werkt pricewatch systeem

Pagina: 1
Acties:

Vraag


Acties:
  • +1 Henk 'm!

  • Jboy1991
  • Registratie: September 2012
  • Laatst online: 19:26
Goedendag,

Omdat ik hier niet echt informatie over kan vinden ben ik toch benieuwd of iemand mij kan en wilt vertellen hoe een pricewatch systeem werkt.

neem tweakers als voorbeeld. Daar zie Ne bij een product vaak of het nog op voorraad is wat de verwachte levertijd is en de prijs etc. Nu vraag ik mij af hoe tweakers aan die info komt. Stelt de bedrijven een api hiervoor open of voegt een redactielid dit handmatig toe etc?

Ik ben hier nieuwsgierig na omdat ik gewoon enorm benieuwd ben hoe zoiets werkt. Het lijkt mij niet dat namelijk elke avond een scanner alle webshops afscant en wijzigingen indexeert.

Beste antwoord (via Jboy1991 op 30-06-2017 15:02)


  • Turbo-Puppy
  • Registratie: Februari 2009
  • Niet online

Turbo-Puppy

Shitcoins are bad.

Zo leveren wij ze ook aan ja.

Wij gebruiken Magento met een Exact koppeling, in Exact boek je je voorraad in, Magento neemt deze over, en real time wordt dat verwerkt bij bestellingen. Ieder uur wordt er snel een nieuwe feed gedraaid en die laat je ophalen door Google of wie dan ook.

Zo'n feed is gewoon een XML waarin je een berg regels plaatst met welke content hij uit de tabellen mag trekken.

hier een voorbeeld (klein deel, niet alles wil ik posten)


<!-- Basic Product Information -->
<g:id>{{product.sku}}</g:id>
<g:gtin>{{product.upc}}</g:gtin>
<title>{{product.name}}</title>
<link>{{parent.url | product.url}}</link>
<description>{{product.description output="strip_tags($self)"}}</description>
<g:google_product_category>{{product.google_product_category | parent.google_product_category}}</g:google_product_category>

<g:product_type>{{product.categories index=0 | product.categories index=0 }}</g:product_type>
<g:product_type>{{product.categories index=1 | product.categories index=1 }}</g:product_type>
<g:product_type>{{product.categories index=2 | product.categories index=2 }}</g:product_type>
<g:product_type>{{product.categories index=3 | product.categories index=3 }}</g:product_type>
<g:product_type>{{product.categories index=4 | product.categories index=4 }}</g:product_type>
<g:product_type>{{product.categories index=5 | product.categories index=5 }}</g:product_type>
<g:product_type>{{product.categories index=6 | product.categories index=6 }}</g:product_type>
<g:product_type>{{product.categories index=7 | product.categories index=7 }}</g:product_type>
<g:product_type>{{product.categories index=8 | product.categories index=8 }}</g:product_type>
<g:product_type>{{product.categories index=9 | product.categories index=9 }}</g:product_type>

<g:image_link>{{parent.image_link index="0"| product.image_link index="0"}}</g:image_link>
<g:additional_image_link>{{parent.image_link index="1"| product.image_link index="1"}}</g:additional_image_link>
<g:additional_image_link>{{parent.image_link index="2"| product.image_link index="2"}}</g:additional_image_link>
<g:additional_image_link>{{parent.image_link index="3"| product.image_link index="3"}}</g:additional_image_link>
<g:additional_image_link>{{parent.image_link index="4"| product.image_link index="4"}}</g:additional_image_link>
<g:additional_image_link>{{parent.image_link index="5"| product.image_link index="5"}}</g:additional_image_link>

<!-- Availability & Price -->
<g:availability>{{product.availability}}</g:availability>

<g:price>{{product.price currency=EUR vat_rate=0 suffix=" EUR"}}</g:price>
<g:sale_price>{{product.sale_price currency=EUR vat_rate=21 suffix=" EUR"}}</g:sale_price>
<g:sale_price_effective_date>{{product.sale_price_effective_date}}</g:sale_price_effective_date>

<g:condition>{{product.condition}}</g:condition>
<!-- Unique Product Identifiers-->
<g:brand>{{product.brand}}</g:brand>
<g:mpn>{{product.mpn}}</g:mpn>
<g:identifier_exists>TRUE</g:identifier_exists>


Wat er dan uitrolt is dit bijvoorbeeld. (1 artikel ter illustratie)


<![CDATA[
https://hierstaatjedomeindus/product/h/o/hotbath-laddy-wastafelmengkraan-003.jpg
]]>
</g:additional_image_link>
<!-- Availability & Price -->
<g:availability>
<![CDATA[ in stock ]]>
</g:availability>
<g:price>
<![CDATA[ 139.00 EUR ]]>
</g:price>
<!-- Unique Product Identifiers -->
<g:identifier_exists>
<![CDATA[ TRUE ]]>
</g:identifier_exists>
<!-- Apparel Products -->
<!-- Product Variants -->
<!-- Shipping -->
<g:shipping_weight>
<![CDATA[ 0.00kg ]]>
</g:shipping_weight>
<!-- AdWords attributes -->
</item>
<item>
<!-- Basic Product Information -->
<g:id>
<![CDATA[ hier de bestelcode ]]>
</g:id>
<g:gtin>
<![CDATA[ 8718924070963 ]]>
</g:gtin>
<title>
<![CDATA[ Hotbath Buddy B005 Chroom (inbouw) ]]>
</title>
<link>


Ik ken geen 1 partij die aan zgn. "scrapen" doet ...wij moeten alles aanleveren per prijsvergelijker in xml of csv in een bepaalde opbouw.

Goolgle is daar eigenlijk het makkelijkst in omdat die standaard regels gebruikt, volgorde maakt niet uit. Kieskeurig of Beslist zijn iets strikter daarin.

Heb je er zo een beeld bij?

Alle reacties


Acties:
  • +3 Henk 'm!

  • Hahn
  • Registratie: Augustus 2001
  • Laatst online: 18:45
Ongeveer omgekeerd van wat jij dacht: bedrijven leveren zelf die informatie aan (het systeem van) Tweakers. Ze hebben er zelf namelijk baat bij om correcte informatie te bieden, zodat klanten bij hun gaan kopen.

[ Voor 4% gewijzigd door Hahn op 27-06-2017 19:25 ]

The devil is in the details.


Acties:
  • +2 Henk 'm!

  • TommieW
  • Registratie: December 2010
  • Laatst online: 17:59

TommieW

Numa numa.

Daarnaast betalen de bedrijven Tweakers e.d. om in de pricewatch te staan.

1700X@3,9GHZ - Asus Crosshair VI Hero - 32GB Corsair LPX - GTX 1070Ti
iPhone 13 Pro Max - Macbook Pro 16" M1 Pro


Acties:
  • 0 Henk 'm!

  • Jboy1991
  • Registratie: September 2012
  • Laatst online: 19:26
Ah kijk dit wist ik dus niet. Ik zag dat bijv budgetgameing een soort gelijk iets heeft. Maar kan mij toch niet voorstellen dat de bedrijven aan elke site die informatie wilt verstrekken? Of is het gewoon een open toegankelijke api url

Acties:
  • 0 Henk 'm!

  • DirkZzZ
  • Registratie: September 2007
  • Laatst online: 12-05 06:22
Jboy1991 schreef op dinsdag 27 juni 2017 @ 19:28:
Ah kijk dit wist ik dus niet. Ik zag dat bijv budgetgameing een soort gelijk iets heeft. Maar kan mij toch niet voorstellen dat de bedrijven aan elke site die informatie wilt verstrekken? Of is het gewoon een open toegankelijke api url
Als jij een grote websites hebt waar dagelijks veel mensen op komen die passen bij de producten die een bedrijf aanbiedt dan hebben willen bedrijven maar al te graag data aanleveren als ze denken daarmee mensen te lokken naar hun producten.

Het zal in de meeste situaties niet geen publieke api zijn, maar als jij graag data wil van een website dan kan je ze altijd een mailtje sturen natuurlijk. Niet geschoten is altijd mis.

Acties:
  • 0 Henk 'm!

  • Jboy1991
  • Registratie: September 2012
  • Laatst online: 19:26
DirkZzZ schreef op dinsdag 27 juni 2017 @ 19:43:
[...]


Als jij een grote websites hebt waar dagelijks veel mensen op komen die passen bij de producten die een bedrijf aanbiedt dan hebben willen bedrijven maar al te graag data aanleveren als ze denken daarmee mensen te lokken naar hun producten.

Het zal in de meeste situaties niet geen publieke api zijn, maar als jij graag data wil van een website dan kan je ze altijd een mailtje sturen natuurlijk. Niet geschoten is altijd mis.
Haha nee ik persoonlijk wil geen data van websites. Nja nog niet. Ik vroeg me gewoon af hoe zoiets nou in zijn werk ging

Acties:
  • 0 Henk 'm!

  • MAX3400
  • Registratie: Mei 2003
  • Laatst online: 09-05 19:07

MAX3400

XBL: OctagonQontrol

Jboy1991 schreef op dinsdag 27 juni 2017 @ 19:28:
Of is het gewoon een open toegankelijke api url
Er is ongetwijfeld een API maar die is natuurlijk niet toegankelijk. Een aantal bedrijven maken in hun prijsvermelding ook nog eens gebruik van een intermediaire click-tracker. De API om van bedrijf naar T.net te communiceren zal ongetwijfeld een vorm hebben van https://...../submit.php?store_id=xxxxxxxxx

Zit er meer mee hoe je dit niet geheel zelf kan inbeelden; het vermelden van een produkt en prijs is niets anders als dat jij iets bestelt bij Bol.com en daar je adres en bankgegevens moet invullen. Of hoe een huisarts een dossier voor je kan aanmaken bij het ziekenhuis.

Pricewatch is toch niet anders dan een beslist.nl of een kieskeurig.nl; in de basis hangt er een database achter, winkels mikken data in die database en elke pagina op de site is een query op bepaalde gegevens uit die database.

Mijn advertenties!!! | Mijn antwoorden zijn vaak niet snowflake-proof


Acties:
  • 0 Henk 'm!

  • Jboy1991
  • Registratie: September 2012
  • Laatst online: 19:26
MAX3400 schreef op dinsdag 27 juni 2017 @ 19:48:
[...]

Er is ongetwijfeld een API maar die is natuurlijk niet toegankelijk. Een aantal bedrijven maken in hun prijsvermelding ook nog eens gebruik van een intermediaire click-tracker. De API om van bedrijf naar T.net te communiceren zal ongetwijfeld een vorm hebben van https://...../submit.php?store_id=xxxxxxxxx

Zit er meer mee hoe je dit niet geheel zelf kan inbeelden; het vermelden van een produkt en prijs is niets anders als dat jij iets bestelt bij Bol.com en daar je adres en bankgegevens moet invullen. Of hoe een huisarts een dossier voor je kan aanmaken bij het ziekenhuis.

Pricewatch is toch niet anders dan een beslist.nl of een kieskeurig.nl; in de basis hangt er een database achter, winkels mikken data in die database en elke pagina op de site is een query op bepaalde gegevens uit die database.
Ik vroeg mij ook meer af hoe de websites aan die data komt. Ik wist niet dat de data zelf aangeleverd werd vanuit de webshop. Ik dacht dat of iemand het handmatig deed of een systeem die sites afscant

Acties:
  • 0 Henk 'm!

  • DJMaze
  • Registratie: Juni 2002
  • Niet online
Jboy1991 schreef op dinsdag 27 juni 2017 @ 19:54:
Ik wist niet dat de data zelf aangeleverd werd vanuit de webshop. Ik dacht dat of iemand het handmatig deed of een systeem die sites afscant
De meeste systemen hanteren inderdaad een PUSH methode (zoals hier besproken), maar er zijn ook
PULL methode.

De meeste systemen hanteren een PULL methode.

Er staat bij PULL dan een feed klaar waarin de product informatie staat.
Dit gebeurt vaak bij leveranciers zodat de webshop de up-to-date inkoop prijzen heeft.

edit:
Oeps, was niet wakker. Hotels werken met PUSH, webshops met PULL

[ Voor 11% gewijzigd door DJMaze op 28-06-2017 09:24 ]

Maak je niet druk, dat doet de compressor maar


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 11:43
DJMaze schreef op dinsdag 27 juni 2017 @ 23:48:
De meeste systemen hanteren inderdaad een PUSH methode (zoals hier besproken), maar er zijn ook PULL methode.
Veel bedrijven starten met pull (web scraping) omdat ze in het begin nog niet groot genoeg zijn om voor bedrijven interessant te zijn. Als er dan een bepaald volume aan bezoekers komt kun je bij bedrijven gaan vragen of ze zelf data willen gaan pushen.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Antrax
  • Registratie: April 2012
  • Laatst online: 13-05 21:53
Tweakers zelf voert via een web interface de producten in. Ik denk dat data wordt aangeleverd en gecontrolleerd wordt door Tweakers en dan ingevoerd wordt :) Correct me if I am wrong @zeef.

Afbeeldingslocatie: https://static.tweakers.net/ext/f/OP9MQUNZrm7shDGirSqKleAz/full.png

.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!


Acties:
  • +6 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

DJMaze schreef op dinsdag 27 juni 2017 @ 23:48:
De meeste systemen hanteren inderdaad een PUSH methode (zoals hier besproken), maar er zijn ook PULL methode.
Er staat bij PULL dan een feed klaar waarin de product informatie staat.

Dit gebeurt vaak bij leveranciers zodat de webshop de up-to-date inkoop prijzen heeft.
Zowel pull als push zijn een beetje verwarrende termen in deze context.

Winkeliers hebben tegenwoordig al een of meerdere csv/xml-exports (ook wel feed genoemd) van hun prijsdata (soms uniek per vergelijker) omdat veel (alle?) vergelijkers zo werken.

Dat is in ieder geval wat Tweakers en Hardware.info doen. Verder doen bij mijn weten Kieskeurig en Beslist dat ook zo, en als je de documentatie van Google Shopping bekijkt lijkt het er op dat dat ook de enige manier is voor Google. Google was vrij laat in dit spelletje, dus het simpele feit dat zij het ook zo zijn gaan doen, suggereert dat dat in hun research als meest gebruikelijke methode naar voren kwam.

Sommige winkeliers genereren zo'n feed periodiek opnieuw, anderen genereren 'm "on the fly" zodra de vergelijker 'm opvraagt (maar met HTTP ziet de vergelijker dat hooguit in de tijd die het kost om 't op te vragen).

Zo'n export is met name voor winkeliers vrij eenvoudig om te maken en voor vergelijkers is het ook vrij eenvoudig om in te lezen. Daardoor zullen winkeliers ook niet zo gauw moeite hebben nog zo'n data-export toe te voegen, zelfs voor e.o.a. klein websiteje.
Hydra schreef op woensdag 28 juni 2017 @ 08:15:
Veel bedrijven starten met pull (web scraping) omdat ze in het begin nog niet groot genoeg zijn om voor bedrijven interessant te zijn. Als er dan een bepaald volume aan bezoekers komt kun je bij bedrijven gaan vragen of ze zelf data willen gaan pushen.
Als je dus een prijsvergelijker wilt beginnen, is het vooral zaak om winkels zover te krijgen dat jij ook hun feed mag gebruiken. Ik betwijfel of nieuwe vergelijkers nu nog zouden beginnen met scraping... het is in ieder geval nergens voor nodig en daarmee onnodig complex en foutgevoelig :)

Acties:
  • +1 Henk 'm!

  • zeef
  • Registratie: Januari 2000
  • Laatst online: 13:49
Antrax schreef op woensdag 28 juni 2017 @ 08:16:
Tweakers zelf voert via een web interface de producten in. Ik denk dat data wordt aangeleverd en gecontrolleerd wordt door Tweakers en dan ingevoerd wordt :) Correct me if I am wrong @zeef.

[afbeelding]
Niet helemaal.

De prijzen komen binnen via csv of soms xml feeds van de winkels. Die halen we dus op.

De producteigenschappen halen we uit meer bronnen, onder andere Icecat. Die checken we (deels, afhankelijk van de populariteit van de categorie) handmatig.

edit: wat ACM zegt. :+

[ Voor 5% gewijzigd door zeef op 28-06-2017 08:26 ]


Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

zeef schreef op woensdag 28 juni 2017 @ 08:19:
De prijzen komen binnen via XML feeds van de winkels. De producteigenschappen halen we uit meer bronnen, onder andere Icecat. Die checken we (deels, afhankelijk van de populariteit van de categorie) handmatig.
De meeste feeds voor prijzen zijn csv, hoewel wij ook xml ondersteunen.

Maar voor producten en hun eigenschappen werken we inderdaad anders dan voor de prijsdata.
Productdata kan je wellicht ook wel van winkeliers krijgen, maar daar zullen ze vast wat minder happig op zijn om te delen.

Acties:
  • 0 Henk 'm!

  • Cloud
  • Registratie: November 2001
  • Laatst online: 07-05 10:21

Cloud

FP ProMod

Ex-moderatie mobster

Geinige wending heeft dit topic gekregen :)

@ACM zijn we eigenlijk ook zo begonnen? Of zijn we begonnen met scraping heel in den beginne?

Er was in een vroeg stadium (zou je zeggen) een kip-ei situatie waarin zowel de export als de import nog niet bestonden en op elkaar konden wachten; scraping lijkt in dat scenario een dan een werkbare workaround. Een prijsvergelijker is niet iets wat je even als je niet zeker weet dat je het gaat verkopen (al kan dat uiteraard wel). Zeker aangezien het aantal webwinkels in die tijd veel lager was.

Never attribute to malice that which can be adequately explained by stupidity. - Robert J. Hanlon
60% of the time, it works all the time. - Brian Fantana


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 11:43
ACM schreef op woensdag 28 juni 2017 @ 08:19:
Als je dus een prijsvergelijker wilt beginnen, is het vooral zaak om winkels zover te krijgen dat jij ook hun feed mag gebruiken. Ik betwijfel of nieuwe vergelijkers nu nog zouden beginnen met scraping... het is in ieder geval nergens voor nodig en daarmee onnodig complex en foutgevoelig :)
Absoluut. Het is voor een MVP haalbaar maar je bent praktisch voor elke site een aparte scraper aan het bouwen en onderhouden. Te doen voor een paar grote jongens maar niet voor 'alle' winkels in Nederland.

Wij gebruiken in het project waar ik op werk ook scraping maar dat is een product van een andere partij. Wij gebruiken dan weer hun API. En zelfs daar zie je toch wel dat het best regelmatig stuk gaat. Dus als een site aangepast is, of eruit ligt.

[ Voor 17% gewijzigd door Hydra op 28-06-2017 08:45 ]

https://niels.nu


Acties:
  • +1 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Cloud schreef op woensdag 28 juni 2017 @ 08:38:
@ACM zijn we eigenlijk ook zo begonnen? Of zijn we begonnen met scraping heel in den beginne?

Er was in een vroeg stadium (zou je zeggen) een kip-ei situatie waarin zowel de export als de import nog niet bestonden en op elkaar konden wachten; scraping lijkt in dat scenario een dan een werkbare workaround. Een prijsvergelijker is niet iets wat je even als je niet zeker weet dat je het gaat verkopen (al kan dat uiteraard wel). Zeker aangezien het aantal webwinkels in die tijd veel lager was.
Ik kan me eigenlijk niet herinneren dat we ooit scraping hadden. Maar ik was er ook niet in het prille begin bij.
Wel was het heel vroeger zo dat de boel met de hand werd ingevoerd door wat modjes en later door gebruikers prijsvermeldingen mogelijk waren. Dat laatste is net voor 'mijn tijd' toegevoegd, maar wel in mijn tijd verwijderd en vervangen door uitsluitend feed-imports.

Acties:
  • +1 Henk 'm!

  • Cloud
  • Registratie: November 2001
  • Laatst online: 07-05 10:21

Cloud

FP ProMod

Ex-moderatie mobster

ACM schreef op woensdag 28 juni 2017 @ 08:59:
[...]

Ik kan me eigenlijk niet herinneren dat we ooit scraping hadden. Maar ik was er ook niet in het prille begin bij.
Wel was het heel vroeger zo dat de boel met de hand werd ingevoerd door wat modjes en later door gebruikers prijsvermeldingen mogelijk waren. Dat laatste is net voor 'mijn tijd' toegevoegd, maar wel in mijn tijd verwijderd en vervangen door uitsluitend feed-imports.
Ah ja, handmatige invoer en correcties/aanvullingen door gebruikers inderdaad. Dat kan ik me ook nog wel vaag herinneren, al was dat ook voor mijn crewtijd. Echt community driven begin dus :)

Never attribute to malice that which can be adequately explained by stupidity. - Robert J. Hanlon
60% of the time, it works all the time. - Brian Fantana


Acties:
  • 0 Henk 'm!

  • DJMaze
  • Registratie: Juni 2002
  • Niet online
ACM schreef op woensdag 28 juni 2017 @ 08:19:
Zowel pull als push zijn een beetje verwarrende termen in deze context.

Winkeliers hebben tegenwoordig al een of meerdere csv/xml-exports (ook wel feed genoemd) van hun prijsdata (soms uniek per vergelijker) omdat veel (alle?) vergelijkers zo werken.
Heb mijn post bewerkt, zat zo laat in de avond aan hotels te denken.
Bij Expedia, Booking, etc. etc. moet je namelijk zelf de prijzen opsturen via XML.
Bij webshops is het inderdaad meestal een feed die klaar staat.

Maak je niet druk, dat doet de compressor maar


Acties:
  • 0 Henk 'm!

  • Jboy1991
  • Registratie: September 2012
  • Laatst online: 19:26
En dus als ik de realtime voorraad bij wilt houden is het aan de webshop om mij die data te willen geven? Er bestaat dus niet een openbare link die algemeen toegankelijk is.

De reden dat ik dr vraag is dat het mij wel leuk lijkt om dmv ean nummers te checken ov een artikel nog op voorraad is. Ipv dit handmatig te doen

Acties:
  • 0 Henk 'm!

  • royduin
  • Registratie: November 2007
  • Laatst online: 17:06
Ik heb een aantal jaar geleden de Pricewatch "nagemaakt" voor een tablet vergelijker waarbij de product informatie uit Icecat komt en de prijzen via affiliate feeds ingelezen worden, mocht iemand het interessant vinden het project staat op Github: https://github.com/royduin/just-tablets

Acties:
  • 0 Henk 'm!

  • J-roenn
  • Registratie: December 2005
  • Laatst online: 19:34
Jboy1991 schreef op dinsdag 27 juni 2017 @ 19:28:
Ah kijk dit wist ik dus niet. Ik zag dat bijv budgetgameing een soort gelijk iets heeft. Maar kan mij toch niet voorstellen dat de bedrijven aan elke site die informatie wilt verstrekken? Of is het gewoon een open toegankelijke api url
Hier een oud "medewerker" van Budgetgaming ( 6e geregistreerde lid op die website ;P ),
toen wij begonnen was inderdaad het overgrote deel van de websites vergelijken handwerk, we deden dan met bepaalde "Update teams" iedere week een aantal webshops updaten, langzaam aan kregen we steeds meer koppelingen met webwinkels die ons dat werk uit handen namen, toen ik er mee stopte zo'n 3 jaar geleden was 90% van dit proces geautomatiseerd. moesten natuurlijk wel de EAN's (Streepjescodes) overeenkomen, met enkele webshops die importgames verkochten ging het automatische proces dus vaak mis.

bedrijven zien die gegevens maar al te graag op een vergelijkingssite, sterker nog, ze betalen er voor (zo'n 0,5-4% van de gegenereerde omzet via de prijsvergelijker)

[ Voor 16% gewijzigd door J-roenn op 28-06-2017 15:26 ]


Acties:
  • 0 Henk 'm!

  • StarZ
  • Registratie: November 2009
  • Laatst online: 04-05 23:05
Ik heb in het verleden feeds gemaakt voor Tweakers voor een grote webshop op de pricewatch. Dat deden we door periodiek een csv bestand klaarzetten in een mapje waar T.net dan weer bij kan met eigen FTP gegevens.

Wij kregen deze data vooral uit Onetrail (van C.net) en verijkte deze dan met ons content team en leveranciers data. Ik meende dat er elk uur de voorraad/prijs werd bijgewerkt en eens in de zoveel tijd het gehele assortiment, omdat dat best groot was.

Het is inmiddels even geleden maar het was eigenlijk heel simpel.

Acties:
  • 0 Henk 'm!

  • Jboy1991
  • Registratie: September 2012
  • Laatst online: 19:26
StarZ schreef op woensdag 28 juni 2017 @ 21:29:
Ik heb in het verleden feeds gemaakt voor Tweakers voor een grote webshop op de pricewatch. Dat deden we door periodiek een csv bestand klaarzetten in een mapje waar T.net dan weer bij kan met eigen FTP gegevens.

Wij kregen deze data vooral uit Onetrail (van C.net) en verijkte deze dan met ons content team en leveranciers data. Ik meende dat er elk uur de voorraad/prijs werd bijgewerkt en eens in de zoveel tijd het gehele assortiment, omdat dat best groot was.

Het is inmiddels even geleden maar het was eigenlijk heel simpel.
Ik mag hopen dat het tegenwoordig allemaal automatisch moet gaan bij webshops.

Wil namelijk kijken of het mogelijk is om te checken of bepaalde producten op voorraad zijn bij mediamarkt,Gamemania,nedgame,intertoys etc

Acties:
  • 0 Henk 'm!

  • StarZ
  • Registratie: November 2009
  • Laatst online: 04-05 23:05
Jboy1991 schreef op woensdag 28 juni 2017 @ 22:41:
[...]

Ik mag hopen dat het tegenwoordig allemaal automatisch moet gaan bij webshops.

Wil namelijk kijken of het mogelijk is om te checken of bepaalde producten op voorraad zijn bij mediamarkt,Gamemania,nedgame,intertoys etc
Het maken van het CSV bestand? Ja dat ging vol automatisch, gewoon een cronjob die een CSV uitpoept.

Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • Turbo-Puppy
  • Registratie: Februari 2009
  • Niet online

Turbo-Puppy

Shitcoins are bad.

Zo leveren wij ze ook aan ja.

Wij gebruiken Magento met een Exact koppeling, in Exact boek je je voorraad in, Magento neemt deze over, en real time wordt dat verwerkt bij bestellingen. Ieder uur wordt er snel een nieuwe feed gedraaid en die laat je ophalen door Google of wie dan ook.

Zo'n feed is gewoon een XML waarin je een berg regels plaatst met welke content hij uit de tabellen mag trekken.

hier een voorbeeld (klein deel, niet alles wil ik posten)


<!-- Basic Product Information -->
<g:id>{{product.sku}}</g:id>
<g:gtin>{{product.upc}}</g:gtin>
<title>{{product.name}}</title>
<link>{{parent.url | product.url}}</link>
<description>{{product.description output="strip_tags($self)"}}</description>
<g:google_product_category>{{product.google_product_category | parent.google_product_category}}</g:google_product_category>

<g:product_type>{{product.categories index=0 | product.categories index=0 }}</g:product_type>
<g:product_type>{{product.categories index=1 | product.categories index=1 }}</g:product_type>
<g:product_type>{{product.categories index=2 | product.categories index=2 }}</g:product_type>
<g:product_type>{{product.categories index=3 | product.categories index=3 }}</g:product_type>
<g:product_type>{{product.categories index=4 | product.categories index=4 }}</g:product_type>
<g:product_type>{{product.categories index=5 | product.categories index=5 }}</g:product_type>
<g:product_type>{{product.categories index=6 | product.categories index=6 }}</g:product_type>
<g:product_type>{{product.categories index=7 | product.categories index=7 }}</g:product_type>
<g:product_type>{{product.categories index=8 | product.categories index=8 }}</g:product_type>
<g:product_type>{{product.categories index=9 | product.categories index=9 }}</g:product_type>

<g:image_link>{{parent.image_link index="0"| product.image_link index="0"}}</g:image_link>
<g:additional_image_link>{{parent.image_link index="1"| product.image_link index="1"}}</g:additional_image_link>
<g:additional_image_link>{{parent.image_link index="2"| product.image_link index="2"}}</g:additional_image_link>
<g:additional_image_link>{{parent.image_link index="3"| product.image_link index="3"}}</g:additional_image_link>
<g:additional_image_link>{{parent.image_link index="4"| product.image_link index="4"}}</g:additional_image_link>
<g:additional_image_link>{{parent.image_link index="5"| product.image_link index="5"}}</g:additional_image_link>

<!-- Availability & Price -->
<g:availability>{{product.availability}}</g:availability>

<g:price>{{product.price currency=EUR vat_rate=0 suffix=" EUR"}}</g:price>
<g:sale_price>{{product.sale_price currency=EUR vat_rate=21 suffix=" EUR"}}</g:sale_price>
<g:sale_price_effective_date>{{product.sale_price_effective_date}}</g:sale_price_effective_date>

<g:condition>{{product.condition}}</g:condition>
<!-- Unique Product Identifiers-->
<g:brand>{{product.brand}}</g:brand>
<g:mpn>{{product.mpn}}</g:mpn>
<g:identifier_exists>TRUE</g:identifier_exists>


Wat er dan uitrolt is dit bijvoorbeeld. (1 artikel ter illustratie)


<![CDATA[
https://hierstaatjedomeindus/product/h/o/hotbath-laddy-wastafelmengkraan-003.jpg
]]>
</g:additional_image_link>
<!-- Availability & Price -->
<g:availability>
<![CDATA[ in stock ]]>
</g:availability>
<g:price>
<![CDATA[ 139.00 EUR ]]>
</g:price>
<!-- Unique Product Identifiers -->
<g:identifier_exists>
<![CDATA[ TRUE ]]>
</g:identifier_exists>
<!-- Apparel Products -->
<!-- Product Variants -->
<!-- Shipping -->
<g:shipping_weight>
<![CDATA[ 0.00kg ]]>
</g:shipping_weight>
<!-- AdWords attributes -->
</item>
<item>
<!-- Basic Product Information -->
<g:id>
<![CDATA[ hier de bestelcode ]]>
</g:id>
<g:gtin>
<![CDATA[ 8718924070963 ]]>
</g:gtin>
<title>
<![CDATA[ Hotbath Buddy B005 Chroom (inbouw) ]]>
</title>
<link>


Ik ken geen 1 partij die aan zgn. "scrapen" doet ...wij moeten alles aanleveren per prijsvergelijker in xml of csv in een bepaalde opbouw.

Goolgle is daar eigenlijk het makkelijkst in omdat die standaard regels gebruikt, volgorde maakt niet uit. Kieskeurig of Beslist zijn iets strikter daarin.

Heb je er zo een beeld bij?

Acties:
  • 0 Henk 'm!

  • Jboy1991
  • Registratie: September 2012
  • Laatst online: 19:26
Turbo-Puppy schreef op woensdag 28 juni 2017 @ 23:33:
Zo leveren wij ze ook aan ja.

Wij gebruiken Magento met een Exact koppeling, in Exact boek je je voorraad in, Magento neemt deze over, en real time wordt dat verwerkt bij bestellingen. Ieder uur wordt er snel een nieuwe feed gedraaid en die laat je ophalen door Google of wie dan ook.

Zo'n feed is gewoon een XML waarin je een berg regels plaatst met welke content hij uit de tabellen mag trekken.

hier een voorbeeld (klein deel, niet alles wil ik posten)


<!-- Basic Product Information -->
<g:id>{{product.sku}}</g:id>
<g:gtin>{{product.upc}}</g:gtin>
<title>{{product.name}}</title>
<link>{{parent.url | product.url}}</link>
<description>{{product.description output="strip_tags($self)"}}</description>
<g:google_product_category>{{product.google_product_category | parent.google_product_category}}</g:google_product_category>

<g:product_type>{{product.categories index=0 | product.categories index=0 }}</g:product_type>
<g:product_type>{{product.categories index=1 | product.categories index=1 }}</g:product_type>
<g:product_type>{{product.categories index=2 | product.categories index=2 }}</g:product_type>
<g:product_type>{{product.categories index=3 | product.categories index=3 }}</g:product_type>
<g:product_type>{{product.categories index=4 | product.categories index=4 }}</g:product_type>
<g:product_type>{{product.categories index=5 | product.categories index=5 }}</g:product_type>
<g:product_type>{{product.categories index=6 | product.categories index=6 }}</g:product_type>
<g:product_type>{{product.categories index=7 | product.categories index=7 }}</g:product_type>
<g:product_type>{{product.categories index=8 | product.categories index=8 }}</g:product_type>
<g:product_type>{{product.categories index=9 | product.categories index=9 }}</g:product_type>

<g:image_link>{{parent.image_link index="0"| product.image_link index="0"}}</g:image_link>
<g:additional_image_link>{{parent.image_link index="1"| product.image_link index="1"}}</g:additional_image_link>
<g:additional_image_link>{{parent.image_link index="2"| product.image_link index="2"}}</g:additional_image_link>
<g:additional_image_link>{{parent.image_link index="3"| product.image_link index="3"}}</g:additional_image_link>
<g:additional_image_link>{{parent.image_link index="4"| product.image_link index="4"}}</g:additional_image_link>
<g:additional_image_link>{{parent.image_link index="5"| product.image_link index="5"}}</g:additional_image_link>

<!-- Availability & Price -->
<g:availability>{{product.availability}}</g:availability>

<g:price>{{product.price currency=EUR vat_rate=0 suffix=" EUR"}}</g:price>
<g:sale_price>{{product.sale_price currency=EUR vat_rate=21 suffix=" EUR"}}</g:sale_price>
<g:sale_price_effective_date>{{product.sale_price_effective_date}}</g:sale_price_effective_date>

<g:condition>{{product.condition}}</g:condition>
<!-- Unique Product Identifiers-->
<g:brand>{{product.brand}}</g:brand>
<g:mpn>{{product.mpn}}</g:mpn>
<g:identifier_exists>TRUE</g:identifier_exists>


Wat er dan uitrolt is dit bijvoorbeeld. (1 artikel ter illustratie)


<![CDATA[
https://hierstaatjedomeindus/product/h/o/hotbath-laddy-wastafelmengkraan-003.jpg
]]>
</g:additional_image_link>
<!-- Availability & Price -->
<g:availability>
<![CDATA[ in stock ]]>
</g:availability>
<g:price>
<![CDATA[ 139.00 EUR ]]>
</g:price>
<!-- Unique Product Identifiers -->
<g:identifier_exists>
<![CDATA[ TRUE ]]>
</g:identifier_exists>
<!-- Apparel Products -->
<!-- Product Variants -->
<!-- Shipping -->
<g:shipping_weight>
<![CDATA[ 0.00kg ]]>
</g:shipping_weight>
<!-- AdWords attributes -->
</item>
<item>
<!-- Basic Product Information -->
<g:id>
<![CDATA[ hier de bestelcode ]]>
</g:id>
<g:gtin>
<![CDATA[ 8718924070963 ]]>
</g:gtin>
<title>
<![CDATA[ Hotbath Buddy B005 Chroom (inbouw) ]]>
</title>
<link>


Ik ken geen 1 partij die aan zgn. "scrapen" doet ...wij moeten alles aanleveren per prijsvergelijker in xml of csv in een bepaalde opbouw.

Goolgle is daar eigenlijk het makkelijkst in omdat die standaard regels gebruikt, volgorde maakt niet uit. Kieskeurig of Beslist zijn iets strikter daarin.

Heb je er zo een beeld bij?
Er wordt nog best veel data gegeven. Ik dacht product nummer. Aantal voorraad foto en prijs voldoende zou zijn Haha

Acties:
  • 0 Henk 'm!

  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 15:05

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

Turbo-Puppy schreef op woensdag 28 juni 2017 @ 23:33:
Ik ken geen 1 partij die aan zgn. "scrapen" doet ...wij moeten alles aanleveren per prijsvergelijker in xml of csv in een bepaalde opbouw.
Omdat het een mooi overzichtstopic wordt, mijn twee cent :)

Ik heb zelf een (niche-)prijsvergelijker ontwikkeld die inderdaad hoofdzakelijk gebruik maakt van CSV/XML, aangeleverd door verschillende verkopers. Omdat er één verkoper is die geen databestand aanbiedt, en ik die aanbieder wel in mijn overzichten wil opnemen (vergelijken op halve informatie is immers niet vergelijken), scrape ik de website. En het is mij dan ook direct duidelijk waarom dat een weinig aantrekkelijke manier is om informatie te verzamelen.

Je moet gebruik maken van een proxy (ik heb er een met enkele tientallen IP-adressen), omdat anders per dag wel verdacht veel verzoeken vanaf hetzelfde IP worden gedaan, het is traag (de dataverwerking is al intensief, en je hebt ook nog eens vertraging door de proxy) en als de website wijzigt, moet je je scraper daarop aanpassen.

Waar een XML-bestand met +/- 35.000 producten in enkele seconden is verwerkt, heb ik voor het scrapen van de helft van dat aantal een hele dag nodig.

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


Acties:
  • 0 Henk 'm!

  • Jboy1991
  • Registratie: September 2012
  • Laatst online: 19:26
Thijsmans schreef op zaterdag 1 juli 2017 @ 10:51:
[...]


Omdat het een mooi overzichtstopic wordt, mijn twee cent :)

Ik heb zelf een (niche-)prijsvergelijker ontwikkeld die inderdaad hoofdzakelijk gebruik maakt van CSV/XML, aangeleverd door verschillende verkopers. Omdat er één verkoper is die geen databestand aanbiedt, en ik die aanbieder wel in mijn overzichten wil opnemen (vergelijken op halve informatie is immers niet vergelijken), scrape ik de website. En het is mij dan ook direct duidelijk waarom dat een weinig aantrekkelijke manier is om informatie te verzamelen.

Je moet gebruik maken van een proxy (ik heb er een met enkele tientallen IP-adressen), omdat anders per dag wel verdacht veel verzoeken vanaf hetzelfde IP worden gedaan, het is traag (de dataverwerking is al intensief, en je hebt ook nog eens vertraging door de proxy) en als de website wijzigt, moet je je scraper daarop aanpassen.

Waar een XML-bestand met +/- 35.000 producten in enkele seconden is verwerkt, heb ik voor het scrapen van de helft van dat aantal een hele dag nodig.
Ik snap dan ook niet waarom er niet een standaard manier ontwikkeld is. Webshops willen graag op vergelijkingssites komen (gratis reclame). Dan zal j toch verwachten dat elke website op de zelfde manier data aanlevert waardoor het voor de vergelijkingssite makkelijker is om die data te verwerken

Acties:
  • 0 Henk 'm!

  • MsG
  • Registratie: November 2007
  • Laatst online: 17:53

MsG

Forumzwerver

Als we dan toch een beetje zijdelings gaan. Al tijden is JSON helemaal de shit voor dit soort data in plaats van XML (weet zelf inhoudelijk niet zo waarom). Maar het viel me op dat in de affiliatewereld (heb zelf een tijdje wat affiliatesites beheert met XML-feeds) het nog steeds vooral XML is. Is dat gewoon de reden van legacy, vervangen kost geld, of zit er een voordeel aan XML in dit geval?

Denk om uw spatiegebruik. Dit scheelt Tweakers.net kostbare databaseruimte! | Groninger en geïnteresseerd in Domotica? Kom naar DomoticaGrunn


Acties:
  • +1 Henk 'm!

  • Xepos
  • Registratie: September 2009
  • Laatst online: 14:12
Jboy1991 schreef op zaterdag 1 juli 2017 @ 11:31:
[...]

Ik snap dan ook niet waarom er niet een standaard manier ontwikkeld is. Webshops willen graag op vergelijkingssites komen (gratis reclame). Dan zal j toch verwachten dat elke website op de zelfde manier data aanlevert waardoor het voor de vergelijkingssite makkelijker is om die data te verwerken
Voor webshops is het niet gratis om in een vergelijker te komen. Ze betalen vaak een % per voltooide aankoop. Dat is het verdienmodel van een vergelijker.
MsG schreef op zaterdag 1 juli 2017 @ 11:41:
Als we dan toch een beetje zijdelings gaan. Al tijden is JSON helemaal de shit voor dit soort data in plaats van XML (weet zelf inhoudelijk niet zo waarom). Maar het viel me op dat in de affiliatewereld (heb zelf een tijdje wat affiliatesites beheert met XML-feeds) het nog steeds vooral XML is. Is dat gewoon de reden van legacy, vervangen kost geld, of zit er een voordeel aan XML in dit geval?
Toen ik laatst met XML API werkte duurde het verschrikkelijk lang om de gegevens op te vragen. Ze hadden het daarna verandert naar JSON en tering snel snel ging dat. Maar uiteraard kost dat tijd en dus geld, waar je in dit soort gevallen eigenlijk helemaal geen tijdsdruk hebt. Dus zolang het werkt is er ook geen reden om het te vervangen.

[ Voor 42% gewijzigd door Xepos op 01-07-2017 11:43 ]

Pagina: 1