有道ai写作,突破免费限制,无限制使用

news2024/9/25 2:26:14

预览效果

示例图

  • 文末提供源码包及apk下载地址

有道ai写作python版

import hashlib
import time
import json
import ssl
import base64
import uuid

from urllib.parse import quote
import requests
from requests_toolbelt.multipart.encoder import MultipartEncoder
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
from sseclient import SSEClient


# 生成唯一的用户id
yduuid=str(uuid.uuid4()).replace('-','')

session = requests.session()
lastModified = requests.get('https://fanyi.youdao.com/index.html').headers['last-Modified']
_nlmf = int(time.mktime(time.strptime(lastModified, "%a, %d %b %Y %H:%M:%S GMT")))
session.headers = {
   
    'Referer': 'https://fanyi.youdao.com/',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36',
}
session.get(f'https://rlogs.youdao.com/rlog.php?_npid=fanyiweb&_ncat=pageview&_ncoo=935962676.0432019&_nssn=NULL&_nver=1.2.0&_ntms={
     time.time()}&_nref=&_nurl=https%3A%2F%2Ffanyi.youdao.com%2Findex.html%23%2F&_nres=1920x1080&_nlmf={
     _nlmf}&_njve=0&_nchr=utf-8&_nfrg=%2F&/=NULL&screen=1920*1080')

# 获取md5加密结果
def get_md5(s,is_hex=True):
    md5=hashlib.md5()
    md5.update(s.encode())
    if is_hex:
      return md5.hexdigest()
    return md5.digest()

# AES-128-CBC解密
def decrypt(encrypted_data, key, iv):
    cipher = AES.new(key, AES.MODE_CBC, iv)
    decrypted_data = cipher.decrypt(base64.b64decode(encrypted_data))
    return decrypted_data.decode('utf-8')


def get_token_and_key():
    params = {
   
        'product': 'webdict', 
        'appVersion': '1.0', 
        'client': 'web', 
        'mid': '1', 
        'vendor': 'web',
        'screen': '1', 
        'model': '1', 
        'imei': '1',
        'network': 'wired', 
        'keyfrom': 'webdict',
        'keyid': 'ai-write',
        'mysticTime': str(int(time.time()*1000)),
        'yduuid': yduuid,
    }
    # 参数排序
    sorted_params = sorted(params.items(), key=lambda x: x[0])
    sorted_params.append(("key","xuiC95RuooxC8Q51UJtdod1plLUhdAmt"))

    encoded_params = '&'.join([f"{
     key}={
     value}" for key, value in sorted_params])
    print("encoded_params:::::"+encoded_params)
    # 获取sign签名
    sign=get_md5(encoded_params)
    params.update({
   "sign":sign})
    params.update({
   "pointParam":"appVersion,client,imei,keyfrom,keyid,mid,model,mysticTime,network,product,screen,vendor,yduuid,key"})

    response = session.get('https://luna-ai.youdao.com/write/ai/web/ktf', params=params, verify=False)
    print(response.text)

    #============解密数据===============================
    e=response.text.replace("-","+").replace("_","/")
    key=get_md5("IIS0fzL@zGv1^zO2%NcZiTcM=98WYxdun$CJE1KUKFfEhz&zpEC0fdXfvGqy*N!r",is_hex=False)
    iv=get_md5("kG_oSxAXx#xjbiOKAkf9915Ko-XclOBP-GSgfo6E9ZB%9WvgcY6Y7dmje!+m5g#d",is_hex=False)

    s=decrypt(e,key,iv).replace('\x02', '')
    print("解密数据::::"+s)
    decode_data=json.loads(json.loads(s))
    return decode_data


def get_result(query):
    decode_data=get_token_and_key()
    params = {
   
        'product': 'webdict', 
        'appVersion': '1.0', 
        'client': 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1440034.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

11 串口发送应用之使用状态机实现多字节数据发送

1. 使用串口发送5个字节数据到电脑 uart协议规定,发送的数据位只能是6,7,8位,如果数据位不符合,接收者接收不到数据。所以我们需要将40位数据data分为5个字节数据分别发送,那么接收者就能通过uart协议接收…

Mobile ALOHA 2: An Enhanced Low-Cost Hardware for Bimanual Teleoperation

文章目录 1. Mobile ALOHA 11.1 项目地址 2. Mobile ALOHA 22.1 相关链接2.2 Whats upgraded in II ? Reference Stanford 最新家务机器人 1. Mobile ALOHA 1 Mobile ALOHA: Learning Bimanual Mobile Manipulation with Low-Cost Whole-Body Teleoperation 1.1 项目地址 htt…

CoreSight学习笔记

文章目录 1 Components1.1 ROM Table 2 使用场景2.1 Debug Monitor中断2.1.1 参考资料 2.2 Programming the cross halt2.2.1 编程实现2.2.2 参考资料 2.3 CTI中断2.3.1 编程实现2.3.1.1 准备工作2.3.1.2 触发中断2.3.1.3 中断响应 2.3.2 参考资料 1 Components 1.1 ROM Table…

力扣热门100题 - 4.寻找两个正序数组的中位数

力扣热门100题 - 4.寻找两个正序数组的中位数 题目描述:示例:提示:解题思路:代码: 题目链接:4.寻找两个正序数组的中位数 题目描述: 给定两个大小分别为 m 和 n 的正序(从小到大&a…

【golang】23、gorilla websocket 源码:examples、数据结构、流程

文章目录 一、examples1.1 echo1.1.1 server.go1.1.2 client.go 1.2 command1.2.1 功能和启动方式1.2.2 home.html1.2.3 main.go 1.3 filewatch1.3.1 html1.3.2 serveHome 渲染模板1.3.3 serveWs1.3.4 writer() 1.4 buffer pool1.4.1 server1.4.2 client 1.5 chat1.5.1 server1…

掌握虚拟化与网络配置之道:深入浅出VMware及远程管理技巧

目录 虚拟机介绍 虚拟机的关键字 服务器架构的发展 为什么用虚拟机VMware 虚拟机和阿里云的区别 功能角度 价格因素 应用场景 优势方面 找到windows的服务管理 配置VMware 关于VMware安装的几个服务 vmware如何修改各种网络配置 关于NAT的详细信息(了解) NAT(网…

【芯片设计- RTL 数字逻辑设计入门 11 -- 移位运算与乘法】

请阅读【嵌入式开发学习必备专栏 】 文章目录 移位运算与乘法Verilog Codeverilog 拼接运算符({})Testbench CodeVCS 波形仿真 问题小结 移位运算与乘法 已知d为一个8位数,请在每个时钟周期分别输出该数乘1/3/7/8,并输出一个信号通知此时刻输…

LLaMA 入门指南

LLaMA 入门指南 LLaMA 入门指南LLaMA的简介LLaMA模型的主要结构Transformer架构多层自注意力层前馈神经网络Layer Normalization和残差连接 LLaMA模型的变体Base版本Large版本Extra-Large版本 LLaMA模型的特点大规模数据训练 LLaMA模型常用数据集介绍公共数据来源已知的数据集案…

物理信息神经网络(PINN): 将物理知识融合到深度学习中

物理信息神经网络(PINN): 将物理知识融合到深度学习中 物理信息神经网络(PINN)简介PINN的工作原理PINN模型如何利用物理法则指导模型训练1. 定义物理问题和相应的物理定律2. 构建神经网络3. 定义损失函数数据误差项 (Data-fidelit…

Docker-Learn(三)创建镜像Docker(换源)

根据之前的内容基础,本小点的内容主要涉及到的内容是比较重要的文本Dockerfile 1. 编辑Dockerfile 启动命令行终端(在自己的工作空间当中),创建和编辑Dockerfile。 vim Dockerfile然后写入以下内容 # 使用一个基础镜像 FROM ubuntu:late…

Mysql为什么使用B+Tree作为索引结构

B树和B树 一般来说,数据库的存储引擎都是采用B树或者B树来实现索引的存储。首先来看B树,如图所示: B树是一种多路平衡树,用这种存储结构来存储大量数据,它的整个高度会相比二叉树来说,会矮很多。 而对于数…

苹果推出新型开源AI图像编辑模型“MGIE”;可汗学院辅助学习的GPT,Prompt 质量非常高

🦉 AI新闻 🚀 苹果推出新型开源AI图像编辑模型“MGIE” 摘要:苹果公司最近发布了一个名为“MGIE”的开源人工智能模型,旨在通过自然语言指令对图片进行编辑。MGIE,全称MLLM-Guided Image Editing,依赖于多…

文献速递:肿瘤分割---- 弱监督教师-学生网络用于非增强图像的肝脏肿瘤分割

文献速递:肿瘤分割---- 弱监督教师-学生网络用于非增强图像的肝脏肿瘤分割 01 文献速递介绍 准确的肝脏肿瘤分割对放射科医师来说是必不可少的,以诊断和治疗肝脏肿瘤并提高患者的生存率(Radtke 等人,2007年)。特别是…

代码随想录算法训练营29期|day44 任务以及具体任务

动态规划:完全背包理论基础 本题力扣上没有原题,大家可以去卡码网第52题 (opens new window)去练习,题意是一样的。 #算法公开课 《代码随想录》算法视频公开课 (opens new window):带你学透完全背包问题! (opens …

HTML 标签

HTML:超文本标记语言 HTML骨架结构: html标签:网页的整体 head标签:网页的头部 body标签:网页的身体 HTML的注释 VS code中:ctrl/ 浏览器不会执行注释 HTML标签的构成: 双标签&#xff1a…

Kubernetes基础(十四)-Cluster Autoscaler

Kubernetes 给出的解决方案就是:自动伸缩(auto-scaling),通过自动伸缩组件之间的配合,可以 7*24 小时的监控着k8s集群,动态变化负载,以适应用户需求。 1 自动伸缩组件 1.1 自动伸缩类型 1.1.…

VsCode中常用的正则表达式操作

在vscode中可以使用正则表达式来进行搜索内容,极大的方便了我们对大量数据中需要查看的信息进行筛选,使用正则搜索时点击 .* 此文章会持续补充常用的正则操作 1.光标选中搜索到的内容 将搜索的内容进行全选,举例:在如下文件中我需…

基于Linux的HTTP代理服务器搭建与配置实战

在数字化世界中,HTTP代理服务器扮演着至关重要的角色,它们能够帮助我们管理网络请求、提高访问速度,甚至在某些情况下还能保护我们的隐私。而Linux系统,凭借其强大的功能和灵活性,成为了搭建HTTP代理服务器的理想选择。…

Android Camera2 API 后台服务

最近在搞CameraAPP需要将Camera2弄成一个后台服务,发现跟预览的Activity没多大变动只是加了Service,和一些简单的修改。之前的公司也用到Camera2,发现用到的时候还是蛮多的所以记录一下,代码在文章末尾 camera2的结构如下&#x…

常用的前端模块化标准总结

1、模块化标准出现以前使用的模块化方案: 1)文件划分: 将不同的模块定义在不同的文件中,然后使用时通过script标签引入这些文件 缺点: 模块变量相当于是定义在全局的,容易造成变量名冲突(即不…