PHP Web scraping na selecteren optie

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Jasper_S1985
  • Registratie: Februari 2015
  • Laatst online: 10:51
Mijn vraag
Ok ik ben compleet nieuw op dit onderwerp maar ik ben bezig met een website waar ik prijzen bij wil houden van bepaalde producten. Nu is het heel eenvoudig om op een normale productpagina een prijs te pakken met een PHP web scraper maar bij de website waar ik nu mee bezig ben zijn er 4 verschillende opties voor een product met verschillende prijzen. Door het selecteren van een variant wordt de correcte prijs weergegeven.

Mijn vraag is nu dus ook. Ik wil graag weten of het mogelijk is om automatisch zo'n optie te selecteren en dan de prijs te scrapen. Ik hoef uiteraard geen compleet werkende scripts maar even een duwtje in de juiste richting met bijvoorbeeld zoektermen aangezien ik zelf op google niet heel ver kom.

Relevante software en hardware die ik gebruik
PHP, Simple HTML DOM Parser

Wat ik al gevonden of geprobeerd heb
Behalve google weet ik nog echt niet wat ik moet proberen vandaar de vraag om een duwtje in de goede richting. Ik wil graag eerst weten of het mogelijk is voor ik een hele studie begin :)

Alle reacties


Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Als de variant middels een GET-variabele gezet wordt, kun je dus die GET-variabele in de URL voor het scrapen meenemen. :)

Als de info in een sessie geduwd wordt, zul je wat meer moeite moeten doen. ;)

Al is het wellicht handiger om na te gaan of de webshop(s) in kwestie een datafeed hebben die je kunt gebruiken. Lijkt mij althans gemakkelijker dan de site er elke keer voor te scrapen.

[ Voor 56% gewijzigd door CH4OS op 28-11-2022 11:31 ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Laatst online: 19:42

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

Hier kan niemand een antwoord op geven; dat verschilt per site / per pagina mogelijk. Het is maar net hoe het geïmplementeerd is. De ene pagina gebruikt JS om verschillende prijzen weer te geven, de andere AJAX requests, weer een andere een simpele GET met een parameter in de URL en van elk van die optie zijn er weer talloze varianten. Er is geen one-size-fits-all. Met wat geluk bieden ze een API.

Wat ik je wél kan vertellen is dat je als je gaat scrapen moet oppassen met databankrecht en dat ik, als ik jou was, een class per site zou bouwen die weet hoe de prijzen voor die specifieke site gescraped kunnen worden. Definieer een duidelijke interface (een IPriceScraper ofzo) en implementeer per site zo'n class die die interface implementeert.

[ Voor 84% gewijzigd door RobIII op 28-11-2022 11:33 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Jasper_S1985
  • Registratie: Februari 2015
  • Laatst online: 10:51
Nou dit is bijvoorbeeld zon optieblok

code:
1
<div class="swatch-option text" id="productid" index="1" aria-checked="false" aria-describedby="option-label207" tabindex="0" data-option-type="0" data-option-id="612" data-option-label="450 gram" aria-label="450 gram" role="option" data-thumb-width="110" data-thumb-height="90" data-option-tooltip-value="450 gram">450 gram</div>


Heb de code aangepast zodat de website niet herkenbaar is. Hier staan er 4 van en elke geeft een andere prijs weer.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Laatst online: 19:42

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

Daar hebben we niets aan; hiermee zien we alleen welke opties er zijn, niet hoe de bijbehorende prijzen bepaald / opgehaald / weergegeven worden.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

RobIII schreef op maandag 28 november 2022 @ 11:28:
Wat ik je wél kan vertellen is dat je als je gaat scrapen moet oppassen met databankrecht en dat ik, als ik jou was, een class per site zou bouwen die weet hoe de prijzen voor die specifieke site gescraped kunnen worden.
Volgens de Rijksoverheid:
Het geautomatiseerd doorzoeken van tekst en databanken om (nieuwe) patronen, trends en verbanden te ontdekken (tekst- en datamining - TDM) mag wel zonder toestemming van de maker.
Prijzen bijhouden lijkt mij dus om een trend of verbanden te ontdekken (door het bijvoorbeeld voor 1 product bij meerdere webwinkels op te halen, waar kennen we dit principe van? :+) te ontdekken en dat lijkt me dus gewoon toegestaan. :)

[ Voor 18% gewijzigd door CH4OS op 28-11-2022 11:38 ]


Acties:
  • +1 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Laatst online: 19:42

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

CH4OS schreef op maandag 28 november 2022 @ 11:35:
Prijzen bijhouden lijkt mij dus om een trend te ontdekken en dat lijkt me dus gewoon toegestaan. :)
Ik zeg niet dat 't niet mag, ik zeg dat je je er bewust van moet zijn dat zoiets bestaat ;) Het begint met prijzen en voor je 't weet ben je een hele kopie van de productcatalogus aan 't bouwen ;)

Los daarvan wil je zo'n site ook niet op de knieën helpen door als een dolle alle pagina's te gaan indexeren; zoiets wil je met gematigd tempo doen. Als 't 5 pagina's / producten betreft zal 't wel meevallen maar als je bol.com gaat indexeren wil je daar niet duizenden requests per seconde tegenaan gooien. Dan maak je geheid iemand boos; al is 't maar een ratelimiter :P
CH4OS schreef op maandag 28 november 2022 @ 11:35:
(door het bijvoorbeeld voor 1 product bij meerdere webwinkels op te halen, waar kennen we dit principe van? :+)
🤷‍♂️ O-)
Zover ik weet wordt de pricewatch gevoed met feeds; geen idee of er ook gespiderd wordt, maar volgens mij niet.

[ Voor 50% gewijzigd door RobIII op 28-11-2022 11:44 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Jasper_S1985
  • Registratie: Februari 2015
  • Laatst online: 10:51
Naja behalve dat het een form is met een post method kan ik helaas niet wijsworden op wat voor manier de prijs wordt opgehaald. Dan wordt het idd lastig om te helpen voor jullie. Denk dat ik maar eens wat meer research moet gaan doen :)

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Laatst online: 19:42

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

Jasper_S1985 schreef op maandag 28 november 2022 @ 11:39:
Naja behalve dat het een form is met een post method kan ik helaas niet wijsworden op wat voor manier de prijs wordt opgehaald. Dan wordt het idd lastig om te helpen voor jullie. Denk dat ik maar eens wat meer research moet gaan doen :)
Je kunt in de console van je browser prima zien wat er gePOST wordt als je in de netwerk tab kijkt ;)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Jasper_S1985
  • Registratie: Februari 2015
  • Laatst online: 10:51
Ok daar was ik nog niet bekend mee. Als ik op een optie klik komt er een GET request maar dit lijkt alleen over een plaatje te gaan van de ingrediënten van het product. Ik ga hier ff induiken want er zal vast meer uit te halen zijn!

Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

RobIII schreef op maandag 28 november 2022 @ 11:39:
Je kunt in de console van je browser prima zien wat er gePOST wordt als je in de netwerk tab kijkt ;)
Dit, maar aan de andere kant; veel forms zijn tegenwoordig wel met CSRF beveiligd, dus de kans bestaat dat je dan een CSRF-token moet meegeven en dan hang je.

[ Voor 6% gewijzigd door CH4OS op 28-11-2022 12:05 ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Laatst online: 19:42

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

CH4OS schreef op maandag 28 november 2022 @ 11:57:
[...]
veel forms zijn tegenwoordig wel met CSRF beveiligd
Ja, maar dat zie je dan ook daar ;)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

RobIII schreef op maandag 28 november 2022 @ 11:57:
Ja, maar dat zie je dan ook daar ;)
Snap ik, meer om aan te geven aan @Jasper_S1985 waarop hij dient te letten. ;)

Acties:
  • +1 Henk 'm!

  • Jasper_S1985
  • Registratie: Februari 2015
  • Laatst online: 10:51
Ik heb inmiddels gevonden dat de verschillende prijzen al in de broncode te vinden zijn dus denk ik dat het beter te doen is dan dat ik dacht :). Bedankt voor het meedenken!
Pagina: 1