J'ai les données suivantes dans cette URL:

https://forsikringsguiden.dk/signalr/poll?transport=longPolling&messageId=d-3E730B44-EB%2C0%7CTX%2C1%7CTY%2C1%7CTZ%2C0&clientProtocol=1.4&connectionToken=81u0%2BTRKNqfgWWdC72ld4wHwbmFGpkCXZRiPe3a1mJPmKvrJpUhBiq3qOThYE04iotxtecRVERe7QA2OyL0GugQoS2nyzbnlcvGZpV1JSav5XqGY0OCrpBKVp0vqXToc&connectionData=%5B%7B%22name%22%3A%22insuranceofferrequesthub%22%7D%5D&tid=5&_=1572867896650

Comment accéder aux données à l'aide d'un script python?

Voici les informations d'en-tête. Je crois qu'en utilisant une combinaison des données, je pourrais générer une URL, mais je pense que c'est un risque de fusionner toutes les différentes informations pour aboutir à une URL finale.

Faites-moi savoir si des informations supplémentaires manquent, je ne sais pas ce que j'ai besoin d'inclure dans ma question.

Les données dont j'ai besoin sont "companydisplayname", "basicprice" et "discountprice".

L'image ci-dessous provient de l'inspection de l'URL principale, qui vous oblige à remplir certains formulaires avant d'ajouter des informations. Il a comparé les prix des assurances:

https://forsikringsguiden.dk/#!/bilforsikring/resultatside

enter image description here

0
doomdaam 4 nov. 2019 à 15:26

1 réponse

Meilleure réponse

Vous pouvez utiliser le script suivant. Tout d'abord, nous pouvons utiliser des requêtes pour récupérer le JSON, puis effectuer des opérations dessus pour récupérer les résultats requis:

import requests
request_data = requests.get(url ="https://forsikringsguiden.dk/signalr/poll?transport=longPolling&messageId=d-3E730B44-EB%2C0%7CTX%2C1%7CTY%2C1%7CTZ%2C0&clientProtocol=1.4&connectionToken=81u0%2BTRKNqfgWWdC72ld4wHwbmFGpkCXZRiPe3a1mJPmKvrJpUhBiq3qOThYE04iotxtecRVERe7QA2OyL0GugQoS2nyzbnlcvGZpV1JSav5XqGY0OCrpBKVp0vqXToc&connectionData=%5B%7B%22name%22%3A%22insuranceofferrequesthub%22%7D%5D&tid=5&_=1572867896650")
request_json = request_data.json()

# Now Perform Operations
for a_key in data["M"]:
    for a_value in a_key["A"]:
        # Checking whether companydisplayname, basicprice and discounted price exists or not
        if "offers" in a_value and "companydisplayname" in a_value["offers"][0] and "basicprice" in a_value and "discountedprice" in a_value:
            print "Company Name : ",a_value["offers"][0]["companydisplayname"]
            print "Basic Price : ",a_value["basicprice"]
            print "Discounted Price : ",a_value["discountedprice"]

Production:

Company Name :  Topdanmark
Basic Price :  8360
Discounted Price :  7003
Company Name :  OK Forsikring
Basic Price :  6473
Discounted Price :  6473
Company Name :  GF Forsikring
Basic Price :  6737
Discounted Price :  6737
Company Name :  Nykredit Forsikring A/S
Basic Price :  5215
Discounted Price :  4707
Company Name :  Gjensidige Forsikring A/S
Basic Price :  5215
Discounted Price :  4707
Company Name :  If Skadeforsikring
Basic Price :  4938
Discounted Price :  4670
Company Name :  PenSam
Basic Price :  4691
Discounted Price :  4691
Company Name :  Runa Forsikring
Basic Price :  999999
Discounted Price :  3877
Company Name :  Bauta Forsikring
Basic Price :  999999
Discounted Price :  3877
Company Name :  Alm. Brand
Basic Price :  4252
Discounted Price :  3633
Company Name :  Alka Forsikring
Basic Price :  6151
Discounted Price :  6151
Company Name :  Tryg
Basic Price :  7324
Discounted Price :  5884
Company Name :  FDM Forsikring
Basic Price :  4227
Discounted Price :  4227
Company Name :  Lærerstandens Brandforsikring
Basic Price :  999999
Discounted Price :  3877

J'espère que cela vous aidera !!!

1
skaul05 4 nov. 2019 à 12:52