请给出完整的流程和示例代码
时间: 2024-05-15 16:16:43 浏览: 13
流程:
1. 导入所需模块:requests、json、time、hashlib。
2. 设置请求头,包括 User-Agent 和 Referer。
3. 获取时间戳,单位为毫秒。
4. 将时间戳和公共参数 appkey、sign_method、v 和密钥 secretKey 组合成一个字典参数 params。
5. 对参数按照字典序排序,并将所有参数按照 key=value 的格式拼接成一个字符串。
6. 对拼接后的字符串进行 MD5 加密,得到签名 sign。
7. 将签名添加到 params 中。
8. 构造请求 URL,发起 HTTP GET 请求。
9. 解析返回结果,获取所需信息。
示例代码:
```python
import requests
import json
import time
import hashlib
# 设置请求头
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36',
'Referer': 'https://www.example.com'
}
# 获取时间戳
timestamp = int(round(time.time() * 1000))
# 公共参数
appkey = 'your_appkey'
sign_method = 'md5'
v = '1.0'
secretKey = 'your_secretKey'
# 参数字典
params = {
'appkey': appkey,
'sign_method': sign_method,
'v': v,
'timestamp': timestamp
}
# 对参数按照字典序排序,并将所有参数按照 key=value 的格式拼接成一个字符串
params_str = ''.join([k + str(params[k]) for k in sorted(params.keys())])
# 对拼接后的字符串进行 MD5 加密,得到签名
sign = hashlib.md5((params_str + secretKey).encode('utf-8')).hexdigest()
# 将签名添加到 params 中
params['sign'] = sign
# 构造请求 URL
url = 'https://www.example.com/api?' + '&'.join([k + '=' + str(params[k]) for k in params.keys()])
# 发起 HTTP GET 请求
response = requests.get(url, headers=headers)
# 解析返回结果
result = json.loads(response.text)
info = result['info']
print(info)
```