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 :

Problème de récupération des prix des jeux [WebScraping] [Python 3.X]


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Mars 2021
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2021
    Messages : 3
    Par défaut Problème de récupération des prix des jeux [WebScraping]
    Bonjour à tous

    Je suis nouveau sur le forum. Je ne suis pas du tout un expert en websraping, mais je me débrouille sur python.
    J'aimerais avoir votre aide sur un problème que je n'arrive pas du tout à résoudre.

    J'essaye de récupérer des informations sur l'évolution des prix des jeux sur plusieurs sites (pour mon fils).
    Pour cela j'utilise les librairies requests et BeautifulSoup.

    Mon problème se trouve sur le site instant-Gaming, plus particulièrement le jeu Assassin’s Creed Valhalla.
    En effet, tous les autres jeux que je souhaite récupérer sur instant-gaming ne posent aucun problème, seul Assassin’s Creed Valhalla ne fonctionne pas.

    J'ai essayé avec les liens suivants :
    https://www.instant-gaming.com/fr/61...reed-valhalla/
    https://www.instant-gaming.com/fr/61...reed-valhalla/
    Mais le problème est toujours présent, peu importe le lien utilisé.

    Le problème vient de la ligne de code requests.get(URL) qui m'envoie comme message d'erreur TooManyRedirects: Exceeded 30 redirects. (le message d'erreur complet est joint)

    J'ai donc conclu que le problème était surement dû à l'apostrophe (') et donc un problème d'encodage que je n'arrive pas du tout à résoudre, alors que j'ai essayé beaucoup de méthodes différentes (plus de redirects, pas du tout de redirects,headers, params, encode,...) sans aucun succès.

    J'ai essayé de faire la manipulation sur la dernière version de python, avec Jupyter sur Linux et sur Windows, mais j'ai toujours le même message d'erreur.

    Je vous remercie d'avance pour votre aide.
    Bonne journée
    Fichiers attachés Fichiers attachés

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

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 232
    Par défaut
    hello,
    pour faire du webscraping en python tu pourrais utiliser selenium qui utilise un navigateur (qui peut être chrome, firefox, edge chromium, opera, safari) pour automatiser des actions dans des pages web. En utilisant un navigateur cela évite les soucis de gestion de redirection, exécution de code javascript etc ....)

    Ami calmant, J.P

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 836
    Billets dans le blog
    1
    Par défaut
    Salut

    Je suis désolé mais ça ne vient pas de l'apostrophe. J'ai en effet essayé requests.get("https://www.instant-gaming.com/fr/6147-acheter-jeu-uplay-assassins-creed-valhalla") (URL sans apostrophe qui fonctionne depuis mon navigateur) et ça m'a donné le même message d'erreur.
    Ensuite j'ai créé sur mon site perso un dossier avec apostrophe nommé "xxx'yyy", y ai mis un fichier index.html à la con et en tapant requests.get("https://... (mon_site).../xxx'yyy") ça a fonctionné.

    Désolé je ne vois pas ce qui gène avec Assassin's creed. En tapant requests.get("https://www.instant-gaming.com/fr/442-acheter-jeu-minecraft") ça fonctionne aussi.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Mars 2021
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2021
    Messages : 3
    Par défaut
    Merci de ta réponse, je viens de tester avec Selenium et ça marche sans problème. J'avais peur que Selenium soit un peu plus long mais non ça fonctionne parfaitement. Encore merci.


    Citation Envoyé par jurassic pork Voir le message
    hello,
    pour faire du webscraping en python tu pourrais utiliser selenium qui utilise un navigateur (qui peut être chrome, firefox, edge chromium, opera, safari) pour automatiser des actions dans des pages web. En utilisant un navigateur cela évite les soucis de gestion de redirection, exécution de code javascript etc ....)

    Ami calmant, J.P

  5. #5
    Candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Mars 2021
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2021
    Messages : 3
    Par défaut
    En effet, je ne sais pas du tout pourquoi cela ne fonctionne pas sur Windows et sur Ubuntu.

    Par contre, je viens d'essayer cela sur un raspberry pi et cela fonctionne parfaitement.


    Citation Envoyé par Sve@r Voir le message
    Salut

    Je suis désolé mais ça ne vient pas de l'apostrophe. J'ai en effet essayé requests.get("https://www.instant-gaming.com/fr/6147-acheter-jeu-uplay-assassins-creed-valhalla") (URL sans apostrophe qui fonctionne depuis mon navigateur) et ça m'a donné le même message d'erreur.
    Ensuite j'ai créé sur mon site perso un dossier avec apostrophe nommé "xxx'yyy", y ai mis un fichier index.html à la con et en tapant requests.get("https://... (mon_site).../xxx'yyy") ça a fonctionné.

    Désolé je ne vois pas ce qui gène avec Assassin's creed. En tapant requests.get("https://www.instant-gaming.com/fr/442-acheter-jeu-minecraft") ça fonctionne aussi.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 22
    Dernier message: 05/07/2006, 15h21
  2. [SQL] Problème de récupération des valeurs d'une liste multiple en php
    Par BOLARD dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 01/05/2006, 00h29
  3. Réponses: 2
    Dernier message: 31/03/2006, 09h23
  4. Réponses: 3
    Dernier message: 06/10/2005, 16h46
  5. Réponses: 8
    Dernier message: 12/05/2005, 08h16

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