python使用金山词霸的翻译功能

python使用金山词霸的翻译功能,第1张

思路:

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 详解:链接

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/580122.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-11
下一篇 2022-04-11

发表评论

登录后才能评论

评论列表(0条)

保存