Aansluitbaarheid adres checken Fiberklaar
-
- Premium Member
- Berichten: 681
- Lid geworden op: 22 aug 2012, 00:04
- Locatie: Liedekerke
- Uitgedeelde bedankjes: 63 keer
- Bedankt: 75 keer
- Recent bedankt: 2 keer
Puur uit nieuwsgierigheid probeer ik een script op te stellen dat de aansluitbaarheid van een adres checkt op Fiberklaar zonder te moeten wachten op de officiële mail. Vanwege de dynamische opbouw van de website lukt het me niet om adres te inputten via Selenium/Beautifulsoup (Python). De API dat ze gebruiken lijkt afgeschermd te zijn waardoor dit ook geen optie is. Iemand verder enig idee wat ik kan proberen? Hoeft niet Python te zijn maar maakt het wel gemakkelijk met mijn huidige setup in Ubuntu.

TV:

ISP:

Tel.:

-
- Member
- Berichten: 62
- Lid geworden op: 28 mei 2022, 08:31
- Uitgedeelde bedankjes: 5 keer
- Bedankt: 10 keer
- Recent bedankt: 1 keer
Kan je niet met curl de data posten in de velden die ze willen? Dus eigenlijk de webform invullen zoals een gebruiker dat doet.
Ik heb geen ervaring met web scrapers zoals beautifulsoup dus misschien werken die al zo.
Sent from my BE2029 using Tapatalk
Ik heb geen ervaring met web scrapers zoals beautifulsoup dus misschien werken die al zo.
Sent from my BE2029 using Tapatalk
-
- Premium Member
- Berichten: 509
- Lid geworden op: 24 jun 2008, 13:36
- Locatie: Limburg
- Uitgedeelde bedankjes: 39 keer
- Bedankt: 73 keer
Je kan de webpage scrapen.. of hem proberen te analyseren
Als je via de developer tools in je browser de 'network' tab open doet, zie je welke interactie er over de lijn gaat.
Voor fiberklaar zie je dan dat er achterliggend een API gecalled wordt. De URL lijkt wel uniek per adres.
Ik heb eens snel gekeken en mogelijks kan het je op weg zetten:
Adelardstraat 1 in Beringen (geen fiber):
Nieuwstrat 10 in Geel (wel fiber):
Het stukje achter 'decision' lijkt precies uniek per adres. Een keer je die URL hebt, kan je hem wel gebruiken in je code.
Als headers stuur ik gewoon mee wat mijn browser meestuurt. Hier zit een authorization code in maar die lijkt niet te veranderen (toch niet als ik mijn browser herstart of een andere URL gebruik). Je kan hiervoor een tool als 'Postman' gebruiken of een online variant (bv Reqbin). Dit moet je uiteindelijk in je code implementeren.
Response van de API in geval geen fiber:
Response van de API in geval van fiber:
Succes!

Als je via de developer tools in je browser de 'network' tab open doet, zie je welke interactie er over de lijn gaat.
Voor fiberklaar zie je dan dat er achterliggend een API gecalled wordt. De URL lijkt wel uniek per adres.
Ik heb eens snel gekeken en mogelijks kan het je op weg zetten:
Adelardstraat 1 in Beringen (geen fiber):
Code: Selecteer alles
https://widget.fiberklaar.be/api/v1/widget/decision/1550921?address=Adelardstraat+1&postalCode=3580
Code: Selecteer alles
https://widget.fiberklaar.be/api/v1/widget/decision/1126374?address=Nieuwstraat+10&postalCode=2440
Als headers stuur ik gewoon mee wat mijn browser meestuurt. Hier zit een authorization code in maar die lijkt niet te veranderen (toch niet als ik mijn browser herstart of een andere URL gebruik). Je kan hiervoor een tool als 'Postman' gebruiken of een online variant (bv Reqbin). Dit moet je uiteindelijk in je code implementeren.
Code: Selecteer alles
Accept: application/json, text/plain, */*
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Connection: keep-alive
Authorization: 33d276a4ccb300ac30b8336ee50ea67c8b6ac423c30043aaf6d2a07568b1ad96
Host: widget.fiberklaar.be
Locale: nl
Origin: https://www.fiberklaar.be
Referer: https://www.fiberklaar.be/nl/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-site
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.43
X-Requested-With: XMLHttpRequest
sec-ch-ua: "Not.A/Brand";v="8", "Chromium";v="114", "Microsoft Edge";v="114"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
Code: Selecteer alles
{
"flow": "AddressNotFoundInAC",
"scenario": 8,
"redirect_url": "https:\/\/www.fiberklaar.be\/nl\/adres-niet-gekend-postcode-gekend",
"is_positive": false,
"is_known_in_ac": false,
"is_enabled": false,
"is_orderable": false
}
Code: Selecteer alles
{
"flow": "BUILD",
"redirect_url": "https:\/\/www.fiberklaar.be\/nl\/adres-aansluitbaar-bouw",
"secondary_cta_url": "https:\/\/www.fiberklaar.be\/nl\/projecten\/geel-DG0050",
"address": {
"id": 256325,
"tzip": "BE_GV5BA16",
"dhid": "dhid1_0723668402",
"address": "Nieuwstraat 10",
"street": "Nieuwstraat",
"house_number": "10",
"box": "",
"postal_code": "2440",
"municipality": "Geel",
"enable": true,
"orderable": true,
"area": {
"name": "Geel",
"project_page": "https:\/\/www.fiberklaar.be\/nl\/projecten\/geel-DG0050",
"municipal_page_url": "https:\/\/www.fiberklaar.be\/nl\/projecten\/geel",
"number": "Geel-0051",
"planned_status_link": "https:\/\/www.fiberklaar.be\/nl\/adres-aansluitbaar-planned",
"campaign_status_link": "https:\/\/www.fiberklaar.be\/nl\/adres-aansluitbaar-campagne",
"build_status_link": "https:\/\/www.fiberklaar.be\/nl\/adres-aansluitbaar-bouw",
"done_status_link": "https:\/\/www.fiberklaar.be\/nl\/sluit-je-aan",
"status": 4
}
},
"is_positive": true,
"scenario": 9,
"is_known_in_ac": true,
"is_enabled": true,
"is_orderable": true
}
-
- Premium Member
- Berichten: 681
- Lid geworden op: 22 aug 2012, 00:04
- Locatie: Liedekerke
- Uitgedeelde bedankjes: 63 keer
- Bedankt: 75 keer
- Recent bedankt: 2 keer
Daarmee is het gelukt! Ik moest ook "Preserve log" inschakelen om die decission ID te kunnen zien want de pagina vernieuwd zich bij uitvoeren van request.
Bij een adres waar ze nog met de uitrol bezig zijn is dit de response:
Bij een adres waar ze nog met de uitrol bezig zijn is dit de response:
Code: Selecteer alles
{
"flow": "NotEnabled",
"redirect_url": "https://www.fiberklaar.be/nl/adres-niet-aansluitbaar",
"secondary_cta_url": "https://www.fiberklaar.be/nl/projecten/liedekerke",
"address": {
"id": ,
"tzip": "",
"dhid": "",
"address": "",
"street": "",
"house_number": "",
"box": "",
"postal_code": "1770",
"municipality": "Liedekerke",
"enable": false,
"orderable": false,
"area": {
"name": "Liedekerke",
"project_page": "https://www.fiberklaar.be/nl/projecten/liedekerke-",
"municipal_page_url": "https://www.fiberklaar.be/nl/projecten/liedekerke",
"number": "Liedekerke-",
"planned_status_link": "https://www.fiberklaar.be/nl/adres-aansluitbaar-planned",
"campaign_status_link": "https://www.fiberklaar.be/nl/adres-aansluitbaar-campagne",
"build_status_link": "https://www.fiberklaar.be/nl/adres-aansluitbaar-bouw",
"done_status_link": "https://www.fiberklaar.be/nl/sluit-je-aan",
"status": 2
}
},
"is_positive": false,
"scenario": 5,
"is_known_in_ac": true,
"is_enabled": false,
"is_orderable": false
}

TV:

ISP:

Tel.:
