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

Comment utiliser la publication des requêtes Python

王林
王林avant
2023-04-29 16:52:062004parcourir

    Python simule le navigateur pour envoyer une demande de publication

    import requests

    Format de la demande.post

    request.post(url, data, json, kwargs) # post请求格式
    request.get(url, params, kwargs) # 对比get请求

    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格式

    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)

    Demande de publication de type json

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

    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)

    (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)

    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)

    É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)
    .

    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!

    Déclaration:
    Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer