urllib发送带参数的post请求

urllib发送带参数的post请求

  • 定义参数
  • 将参数转化为字符串
  • 将字符串编码为字节bytes类型
  • 组装请求对象
  • 发送请求,得到返回的结果
  • 将返回结果按照指定的编码方式解码
from urllib import request, parse
def fanyi(keyword):
    url = "https://fanyi.baidu.com/sug"

    data = {				# 定义参数
        'kw': keyword
    }
    data = parse.urlencode(data)	# 将参数编码成字符串
    data = bytes(data, encoding='utf-8')	# 再将字符串编码为字节类型


    headers = {
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36',
    }

    req = request.Request(url, data=data, headers=headers)	#组装请求对象,传入url, 字节类型的参数data,相应的header头信息。

    res = request.urlopen(req)	# 发送请求
    # print(res)

    html = res.read().decode('utf-8')	# 将接收到的数据使用utf8解码

    json_data = json.loads(html)
    print(json_data['data'][0]['v'])

你可能感兴趣的:(urllib发送带参数的post请求)