IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Mon code ne fonctionne pas, merci de votre aide


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    etudiant
    Inscrit en
    Décembre 2023
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Décembre 2023
    Messages : 6
    Par défaut Mon code ne fonctionne pas, merci de votre aide
    Bonjour ,

    Je veux crée une application python ou je dois mettre plusieurs numéro de série DELL dans une barre de recherche ou quoi que ce soit et ensuite il me donne la date de fin de garantie sans API key même si la garantie à expiré, juste grace à ce site :https://www.dell.com/support/home/fr-fr et je veux mettre mon numéro de série directement dans la barre de recherche et non pas dans le code .Je sais pas si vous m'avez trés bien compris mais quand je met le numéro de série le code m'affiche cette erreur : Error: Unexpected response code 403

    J'ai donc demandé à blackbox (une IA) pourquoi ça m'affiche cette erreur il ma donc repondu :403 est le code d'état HTTP pour "Interdit". Cela signifie que le serveur comprends la requête, mais refuse de l'exécuter. Dans votre cas, il semble que le site de Dell n'autorise pas le scraping de ses pages. Pour contourner ce problème, vous pouvez utiliser une API tierce, comme la clé API l72592e2b042421a861862920738d02, qui fournit des informations sur les warranties des produits Dell.

    Voici le code dont le vous parle (c'est un code python)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    import requests
    from bs4 import BeautifulSoup
     
    # Demander l'utilisateur de saisir le numéro de série
    serial_number = input("Enter the serial number: ")
     
    # Construire l'URL pour la requête
    url = f"https://www.dell.com/support/home/en-us/product-support/servicetag/{serial_number}/warranty"
     
    # Envoyer la requête GET
    response = requests.get(url)
     
    # Vérifier si la requête a réussi
    if response.status_code == 200:
        soup = BeautifulSoup(response.content, 'html.parser')
        table = soup.find('table', {'class': 'table table-condensed'})
        warranty_data = table.find_all('tr')
     
        for data in warranty_data:
            columns = data.find_all('td')
     
            # Si la ligne a assez de colonnes (généralement 3)
            if len(columns) >= 3:
                title = columns[0].text.strip()
                start_date = columns[1].text.strip()
                end_date = columns[2].text.strip()
     
                if title.lower() == "warranty":
                    print("Warranty start date: ", start_date)
                    print("Warranty end date: ", end_date)
     
    else:
        print("Error: Unexpected response code ", response.status_code)
     
    # Demander l'utilisateur de saisir le numéro de série
    serial_number = input("Enter the serial number: ")
     
    # Construire l'URL pour la requête
    url = f"https://api.keyvalue.xyz/get/{serial_number}"
     
    # Ajouter l'API key
    headers = {
        'API-KEY': 'l72592e2b042421a861862920738d02'}
     
    # Envoyer la requête GET
    response = requests.get(url, headers=headers)
     
    # Vérifier si la requête a réussi
    if response.status_code == 200:
        warranty_data = response.json()
     
        if warranty_data['key']:
            start_date = warranty_data['key']['warranty_start_date']
            end_date = warranty_data['key']['warranty_end_date']
     
            print("Warranty start date: ", start_date)
            print("Warranty end date: ", end_date)
     
    else:
        print("Error: Unexpected response code ", response.status_code)
    MERCI D'AVANCE POUR VOTRE REPONSE
    Images attachées Images attachées   

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 603
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 603
    Par défaut
    Bonjour.

    Les titres en majuscules, bof. On n'ira pas plus vite à répondre ainsi... D'autant qu'il est aussi explicite que "AU SECOURS", "PITIÉ", "ON M'EN VEUT".

    Et le code étalé brut de fonderie sans respect de l'indentation, pourtant essentielle en Python, sérieusement ?

    Voir le lien dans ma signature.

    Citation Envoyé par adam343 Voir le message
    (c'est un code python)
    Ca tombe bien : tu es dans la section Python du forum

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    etudiant
    Inscrit en
    Décembre 2023
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Décembre 2023
    Messages : 6
    Par défaut
    Merci pour ta réponse qui n'a strictement pas répondu à ma question

  4. #4
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 217
    Par défaut
    Hello,
    la moindre des choses c'est d'essayer les url formés qui sont utilisés dans le code dans un navigateur et voir ce qui se passe

    Ami calmant, J.P

  5. #5
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 603
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 603
    Par défaut
    Citation Envoyé par adam343 Voir le message
    Merci pour ta réponse qui n'a strictement pas répondu à ma question
    En l'état, ton code ne donnait nulle envie de le regarder.

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par adam343 Voir le message
    Je veux crée une application python ou je dois mettre plusieurs numéro de série DELL dans une barre de recherche ou quoi que ce soit et ensuite il me donne la date de fin de garantie sans API key même si la garantie à expiré, juste grace à ce site :https://www.dell.com/support/home/fr-fr
    Le site web vous interdit de faire ce genre d'application. Après le sujet pourrait être "comment faire pour que ce site Web ne détecte pas que je viens le truander?" ou "comment récupérer ces informations". Cela demande d'étudier les possibilités offertes par DELL et trouver laquelle utiliser.
    Ce qui est un préalable à programmer quoi que ce soit (et réfléchir avant de coder n'a rien de spécifique à Python).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 217
    Par défaut
    En tout cas moi j'arrive à récupérer la date d'expiration avec selenium qui pilote Chrome. Le seul truc c'est qu'il peut y avoir jusqu' à 30 secondes avant que la date d'expiration s'affiche après l'envoi de la requête (il y a un compte à rebours qui s'affiche). Il faut mettre un time-out implicite de 30 secondes pour la requête

Discussions similaires

  1. Réponses: 5
    Dernier message: 23/01/2009, 16h22
  2. mon code ne fonctionne pas
    Par zakaroh dans le forum C#
    Réponses: 31
    Dernier message: 04/08/2008, 14h19
  3. Mon code ne fonctionne pas mais pourquoi ?
    Par veriecherie dans le forum ASP
    Réponses: 3
    Dernier message: 01/08/2008, 12h19
  4. pourquoi mon code ne fonctionne pas
    Par jmlb35 dans le forum VBA Access
    Réponses: 2
    Dernier message: 30/06/2008, 19h02
  5. [MySQL] Mon code ne fonctionne pas correctement
    Par bebas dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 24/02/2007, 13h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo