每日总结
今天继续写了一点的页面,之后看了看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对象。
浙公网安备 33010602011771号