>  기사  >  백엔드 개발  >  Python 요청 게시물을 사용하는 방법

Python 요청 게시물을 사용하는 방법

王林
王林앞으로
2023-04-29 16:52:062012검색

    Python은 게시물 요청을 보내기 위해 브라우저를 시뮬레이션합니다

    import requests

    Format request.post

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

    게시물 요청 보내기는

    • form(x-www-form-urlencoded)

    • 으로 나뉩니다. (application/json)

    data 매개변수는 사전 형식과 문자열 형식을 지원합니다. 사전 형식에서는 json.dumps() 메서드를 사용하여 데이터를 합법적인 json 형식 문자열로 변환해야 합니다.

    import json
    json.dumps(data) # data转换成json格式

    또는 데이터 매개변수를 변경하세요. post 메서드에 할당된 json 매개변수는 올바른 json 형식이어야 합니다. 그렇지 않으면 부울 값이 있는 경우 소문자여야 하며 유니코드가 아닌 문자를 포함할 수 없습니다.

    양식 게시 요청(x-www-form-urlencoded)

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

    json 유형 게시 요청

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

    사전 형식을 사용하여 매개변수를 입력하고 전달 시 json 형식으로 변환

    (1) 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) 사전 형식의 데이터를 post 메소드의 json 매개변수에 할당

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

    Python 요청 post data와 관련된 여러 문제에 대한 솔루션

    최근에 Requests를 사용하여 자동으로 데이터를 보내는 작은 프로그램을 만들고 있습니다. Requests 라이브러리입니다. 사용중 게시물 데이터 인코딩에 문제가 있어서 많은 정보를 검색해서 해결했습니다.

    게시물 데이터의 urlencoding 문제

    보통 dict 데이터를 게시할 때 요청은 dict의 데이터를 urlencode한 다음 보냅니다.

    하지만 그가 사용한 urlencode는 기본적으로 UTF-8 인코딩이라는 것을 알았습니다. 내 웹사이트 프로그램이 gb2312 urlencode만 지원한다면 어떻게 될까요?

    인코딩을 위해 urllib에 urllib.parse.urlencode를 도입할 수 있습니다.

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

    데이터가 Urlencode되는 문제를 방지하세요

    때때로 데이터가 Urlencode되는 것을 원하지 않는 경우 어떻게 해야 합니까?

    글 데이터에서 문자열로 연결하면 됩니다. 물론 스플라이싱할 때 문자열 인코딩에 주의해야 합니다. 예를 들어 중국어가 포함된 경우 인코딩을 utf-8 또는 gb2312

    vld = 'val:中国人民'
    session.post('http://www.bac-domm.com',   data=vld.encode('utf-8'),  headers = head_content)
    로 설정해야 합니다.

    위 내용은 Python 요청 게시물을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제