思路:
1.抓包确定 url
2.确定请求参数
抓包分析
- url 地址
- 请求方法 post
- 请求所需参数:data
- use-agent/headers/
3.返回数据位置——response ——json——content.out
4.模拟浏览器获取数据 ——run()调用其它方法
难点 :动态 sign
实现代码:
import requests
import json
import hashlib
class King(object):
# 初始化一些参数
def __init__(self, word):
# 动态 sign
sign = (hashlib.md5(("6key_cibaifanyicjbysdlove1" +word).encode('utf-8')).hexdigest())[0:16]
self.url = 'https://ifanyi.iciba.com/index.php?c=trans&m=fy&client=6&auth_user=key_ciba'
self.url = self.url+'&sign='+sign
self.headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36'
}
self.data = {
"from": "auto",
"to": "auto",
"q": word
}
# 发送请求
def get_data(self):
# 使用 post 方法发送一个 post 请求,data 为请求体字典
response = requests.post(self.url, data=self.data, headers=self.headers)
return response.content.decode()
# 构建解析字典
def parse_data(self, data):
# loads 将 json 字符串转换成 python 字典
dict_data = json.loads(data)
print(dict_data['content']['out'])
# 编写爬虫逻辑
def run(self):
# url
# headers
# data 字典 -post
# 发送请求获取响应
response = self.get_data()
# print(response)
# json 数据解析 -键值索引获取结果
self.parse_data(response)
if __name__ == '__main__':
word = input('请输出要翻译的内容:')
King = King(word)
King.run()
动态 sign 详解:链接
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)