每日总结

今天继续写了一点的页面,之后看了看python的代码实列。

# post请求

import urllib.request
import urllib.parse


url = 'https://fanyi.baidu.com/sug'

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36'
}

data = {
    'kw':'spider'
}

# post请求的参数 必须要进行编码
data = urllib.parse.urlencode(data).encode('utf-8')

# post的请求的参数 是不会拼接在url的后面的  而是需要放在请求对象定制的参数中
# post请求的参数 必须要进行编码
request = urllib.request.Request(url=url,data=data,headers=headers)

# 模拟浏览器向服务器发送请求
response = urllib.request.urlopen(request)

# 获取响应的数据
content = response.read().decode('utf-8')

# 字符串--》json对象

import json

obj = json.loads(content)
print(obj)



# post请求方式的参数 必须编码   data = urllib.parse.urlencode(data)
# 编码之后 必须调用encode方法 data = urllib.parse.urlencode(data).encode('utf-8')
# 参数是放在请求对象定制的方法中  request = urllib.request.Request(url=url,data=data,headers=headers)

  这个代码首先是确定目标为百度翻译的api接口https://fanyi.baidu.com/sug。

定义了一个HTTP请求的头部(headers),包括用户代理信息,模拟浏览器发送请求。

创建了一个包含一个键值对{'kw': 'spider'}的字典,这将作为POST请求的数据。

使用urllib.parse.urlencode(data)将数据字典编码为URL编码格式的字符串,并使用.encode('utf-8')将其编码为字节流,以便在POST请求中发送。

创建了一个urllib.request.Request对象,其中包括目标URL、编码后的数据、以及请求头部信息。

使用urllib.request.urlopen(request)来模拟浏览器向服务器发送POST请求,其中request是包含了所有必要信息的请求对象。

获取服务器的响应内容,使用response.read().decode('utf-8')来读取并解码响应,将其转换为UTF-8编码的字符串。

导入json模块,然后使用json.loads(content)将JSON字符串解析为Python的字典或对象。

最后,打印解析后的JSON对象。

posted @ 2023-10-01 22:53  一个小虎牙  阅读(25)  评论(0)    收藏  举报