> 백엔드 개발 > 파이썬 튜토리얼 > Python 요청 게시물을 사용하는 방법

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

王林
풀어 주다: 2023-04-29 16:52:06
앞으로
2101명이 탐색했습니다.

    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으로 문의하세요.
    인기 튜토리얼
    더>
    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿