.quote:Op donderdag 1 september 2022 18:58 schreef stephano1990 het volgende:
Ik heb ergens ook het idee dat ze dit bewust doen om te voorkomen dat bijv. concurrenten te makkelijk hun prijzen kunnen zien.
Dat heb ik gemerkt, maar de informatie staat wel telkens op de zelfde plaats in de webpagina als tekst weergegeven. Het lijkt mij dat het dus mogelijk moet zijn op de een of andere manier om exact naar dit stukje tekst op de website te linken?quote:Op donderdag 1 september 2022 19:04 schreef YStec het volgende:
[..]
.
Je zal die data moeten scrapen.
Het is geen overzichtelijk tabelletje die je eventjes kan inladen. .
Ik zal het antwoord voor de 3de keer geven: je moet die data scrapen en parsenquote:Op donderdag 1 september 2022 20:13 schreef stephano1990 het volgende:
[..]
Dat heb ik gemerkt, maar de informatie staat wel telkens op de zelfde plaats in de webpagina als tekst weergegeven. Het lijkt mij dat het dus mogelijk moet zijn op de een of andere manier om exact naar dit stukje tekst op de website te linken?
Ah, ik las er overheen inderdaad, ik heb inmiddels een chrome extention gedownload en ben aan het uitvogelen hoe het werktquote:Op donderdag 1 september 2022 20:51 schreef SnodeSnuiter het volgende:
[..]
Ik zal het antwoord voor de 3de keer geven: je moet die data scrapen en parsen
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | $products = @() $priceRanges = 0..10 $priceRanges += 100 for ($num = 0 ; $num -le $priceRanges.Count ; $num++){ $continue = $true $page=1 while($continue -eq $true){ $apiUrl = "https://www.ah.nl/zoeken/api/products/search?size=100&minPrice=$($priceRanges[$num])&maxPrice=$($priceRanges[$num+1])&page=$page" $Response = Invoke-WebRequest -URI $apiUrl -SkipHttpErrorCheck write-output $products.Count if($Response.StatusCode -ne 400){ $FullResultObject = $Response.Content | ConvertFrom-Json -Depth 50 if($FullResultObject.cards.Count -eq 0){ $continue = $false } foreach($card in $FullResultObject.cards){ $products += $card.products } $page++ } else { $continue = $false } } } $outputProduct = @() foreach($product in $products){ $customProduct = [PSCustomObject]@{ Merk = $product.brand Naam = $product.title Prijs = $product.price.now unitSize = $product.price.unitSize } $outputProduct += $customProduct } $csvData = $outputProduct | ConvertTo-Csv -NoTypeInformation -Delimiter ';' Set-Content -Path 'C:\temp\ah.csv' -value $csvData Write-Output 'Done' |
quote:Op zaterdag 3 september 2022 10:17 schreef raptorix het volgende:
Omdat ik natuurlijk een enorm toffe peer ben, heb ik even een Powershell Scraper voor de AH gemaakt:
[ code verwijderd ]
Resultaat: https://docs.google.com/s(...)7kLq8QwkKPeE/pubhtml
Alleen toffe peren doen dit inderdaad, gaaf project zo manquote:Op woensdag 7 september 2022 23:18 schreef raptorix het volgende:
Overigens zag ik de lol er van in, en heb ik hem verbeterd, in deze zaten wat bugs waardoor ik producten miste, ik heb inmiddels ook versies, voor Jumbo en Dirk. Zal proberen uit te werken en elke dag er 1 bij te maken voor een supermarkt, misschien leuk om hier een website voor te maken of de data te opensourcen.
Per toeval dat ik dit lees. Best grappig dat dit kan.quote:Op zaterdag 3 september 2022 10:17 schreef raptorix het volgende:
Omdat ik natuurlijk een enorm toffe peer ben, heb ik even een Powershell Scraper voor de AH gemaakt:
[ code verwijderd ]
Resultaat: https://docs.google.com/s(...)7kLq8QwkKPeE/pubhtml
Je kunt maximaal 1500 resultaten(?) per keer opvragen. Is het niet mogelijk om de volgende 1500 resultaten weer te geven d.m.v. die ULR? Bijv: ?page=2quote:Op zaterdag 6 mei 2023 12:26 schreef phpmystyle het volgende:
[..]
Per toeval dat ik dit lees. Best grappig dat dit kan.
Maar hoe doe je dit? Ik zie hier geen data in staan.
Vind wel ff grappig om dit te begrijpen
|
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |