Maison > développement back-end > Tutoriel Python > Comment utiliser la publication des requêtes Python

Comment utiliser la publication des requêtes Python

王林
Libérer: 2023-04-29 16:52:06
avant
2080 Les gens l'ont consulté

    Python simule le navigateur pour envoyer une demande de publication

    import requests
    Copier après la connexion

    Format de la demande.post

    request.post(url, data, json, kwargs) # post请求格式
    request.get(url, params, kwargs) # 对比get请求
    Copier après la connexion

    L'envoi d'une demande de publication est divisé en

    • form (x-www-form-urlencoded)

    • json (application /json)

    Le paramètre data prend en charge le format de dictionnaire et le format de chaîne. Au format dictionnaire, utilisez la méthode json.dumps() pour convertir les données en une chaîne au format json légal.

    import json
    json.dumps(data) # data转换成json格式
    Copier après la connexion

    ou modifiez le paramètre data Le paramètre json attribué à la méthode post doit être dans un format json légal, sinon il sera inutile s'il y a une valeur booléenne, elle doit être en minuscule et ne peut pas contenir de caractères non Unicode.

    Demande de publication de formulaire (x-www-form-urlencoded)

    import requests
    url = "https://editor.net/"
    data = {"key": "value"} # 字典 外层无引号
    resp = requests.post(url,data=data)
    print(resp.text)
    Copier après la connexion

    Demande de publication de type json

    import requests
    url = "https://editor.net/"
    data = '{"key": "value"}' # 字符串格式 
    resp = requests.post(url, data=data)
    print(resp.text)
    Copier après la connexion

    Utilisez le format de dictionnaire pour remplir les paramètres et convertir au format json lors du passage

    (1) Conversion de la méthode json.dumps()

    import requests
    import json
    url = "https://editor.net/"
    data = {"key": "value"}
    resp = requests.post(url, data=json.dumps(data))
    print(resp.text)
    Copier après la connexion

    (2) Attribuez les données au format dictionnaire au paramètre json de la méthode post

    import requests
    import json
    url = "https://editor.net/"
    data = {"key": "value"}
    resp = requests.post(url, json=data)
    print(resp.text)
    Copier après la connexion

    Solution à plusieurs problèmes avec les requêtes python post data

    Récemment, j'utilise Requests pour créer un petit programme qui envoie automatiquement des données, en utilisant Il s'agit de la bibliothèque Requests. Lors de l'utilisation, il y a eu quelques problèmes avec l'encodage des données de publication. J'ai recherché beaucoup d'informations et je les ai finalement résolues.

    Le problème du codage urlen des données de publication

    Lorsque nous publions habituellement des données de dict, les requêtes coderont urlen les données dans le dict puis les enverront.

    Mais j'ai découvert que le code urlen qu'il a utilisé est encodé par défaut en UTF-8. Et si le programme de mon site Web ne prend en charge que le code urlen gb2312 ?

    Vous pouvez introduire urllib.parse.urlencode dans urllib pour l'encodage.

    from urllib.parse import urlencode
    import requests
     
    session.post('http://www.bac-domm.com',   data=urlencode({'val':'中国人民'}, encoding='gb2312'),  headers = head_content)
    Copier après la connexion

    Évitez le problème du codage urlen des données

    Parfois, nous ne voulons pas que les données soient codées par urlen, que devons-nous faire ?

    Concaténez-le simplement en une chaîne dans les données de publication. Bien sûr, vous devez faire attention à l'encodage de la chaîne lors de l'épissage. Par exemple, si elle contient du chinois, vous devez définir l'encodage sur utf-8 ou gb2312

    vld = 'val:中国人民'
    session.post('http://www.bac-domm.com',   data=vld.encode('utf-8'),  headers = head_content)
    Copier après la connexion
    .

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Étiquettes associées:
    source:yisu.com
    Déclaration de ce site Web
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
    Tutoriels populaires
    Plus>
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal