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 :

requests.get search parameters


Sujet :

Python

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 573
    Points : 97
    Points
    97
    Par défaut requests.get search parameters
    Bonjour,

    J'utilise python pour faire des requests.get sur mon wordpress/woocommerce.
    Cela fonctionne bien quand je cherche un produit avec son slug exact :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mon_products_search = requests.get(url=MON_URL_PRODUCTS + '?slug=europe-france', auth=MON_WC_AUTH, timeout=20).json()
    ma question est, comment rechercher tous les slug commençant par "europe" dans mon exemple .... en gros : slug=europe*
    Mais cela ne fonctionne pas ....

    Une idée ?

    Merci d'avance
    Thais

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 329
    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 329
    Points : 36 848
    Points
    36 848
    Par défaut
    Salut,

    Côté HTTP, le slug est la pertie de l'URL qui est après le dernier '/'.
    Dans votre cas, "?slug=europe-france" est interprété par le serveur (wordpress) et s'il accepte un truc genre "?slug=europe*", ce devrait être documenté (et c'est pas côté langage Python que vous allez trouver grand chose).

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

  3. #3
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 201
    Points : 4 665
    Points
    4 665
    Par défaut
    bonjour

    heureusement que cela ne fonctionne pas avec un site web

    Tu connais les pays, il suffit de les rentrer en dur dans une liste ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for pays in ["france", "belgique", ...]:
        http.get(f'{url}?slug=europe-{pays}')

    Puisque c'est ton site, avec ce frawework woo**, tu peux surtout regarder du coté de son api rest, existe une lib cliente en python qui permet de faire 36 types de recherches
    C'est donc a toi de trouver une réponse dans la doc de ton api : list-all-product-attributes, list-all-product-tags, ... (pas de rapport avec python)
    $moi= ( !== ) ? : ;

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 573
    Points : 97
    Points
    97
    Par défaut
    Merci pour votre aide, mais je voulais faire quelque chose de plus générique : 'quelque soit ce qu'il y a après 'europe-' sans avoir besoin de mettre tous les pays (((

    Merci quand même

  5. #5
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 201
    Points : 4 665
    Points
    4 665
    Par défaut
    Et bien justement, c'est à cela que sert l'api
    le "générique" c'est justement d'utiliser son api ! je ne t'ai pas forcé à le faire car je n'ai aucune idée de tes datas ... 12 pays qui changent une fois l'an ? Oui, il est plus rapide de les écrire manuellement que de lire la doc de l'api.
    Elle retourne un json, reste a faire un filtre sur les retours.
    pseudo code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    datas = set( r["slug"] for r in api.search(XXXXX) if r["slug"].startswith("europe-") )
    for pays in datas:
        pages[pays].append( http.get(f'{url}?slug={pays}') )
    Mais, si tu as la flemme de regarder l'api qui est faite pourtant pour cela, alors oui, dans ce cas il faut saisir manuellement les pays

    -----------

    Et sans api, reste le bidouillage si possible, une requete sql dans la base de donnée du site qui te retourne la liste.
    - dans ton app python (on n'a pas forcément accès à la BD depuis l'extérieur) ou,
    - sur serveur, un script qui retourne la liste en json (c'est réécrire un mini bout de l'api) mais ici c'est du php.
    $moi= ( !== ) ? : ;

Discussions similaires

  1. [Python 3.X] BeautifulSoup request.get html.parser
    Par Thunder13 dans le forum Général Python
    Réponses: 14
    Dernier message: 07/12/2022, 17h18
  2. Réponses: 4
    Dernier message: 22/12/2018, 21h49
  3. request.get? du nom du serveur au path
    Par totoche dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 18/09/2009, 17h15
  4. [JMeter] HTTP request avec des parameters différents
    Par pmartin8 dans le forum Tests et Performance
    Réponses: 2
    Dernier message: 18/09/2006, 14h40

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