当前位置: 首页 > news >正文

python制作翻译软件

本文复刻此教程:制作属于自己的翻译软件-很简单【Python】_哔哩哔哩_bilibili

一、明确需求(以搜狗翻译为例)

        (1)网址:https://fanyi.sogou.com/text

       (2) 数据:翻译内容

二、抓包分析——通过浏览器开发者工具分析对应的数据位置

        (1)在搜狗翻译的官网打开开发者工具(F12/右击选择“检查”——“network(网络)”)

原始界面:

        (2)刷新网页

                刷新网页:进入网页,在网页页面上已经有数据

刷新后界面:

        输入/点击搜索/查询:刚开始进入网页没有数据,当我们执行某些操作之后返回

输入后界面:

        下滑页面加载新的数据内容/点击翻页加载更多数据:下滑网页/点击加载更多数据

       (3) 通过关键字搜索找到对应的数据位置

数据包地址:搜狗翻译 - 我的贴身智能翻译专家

二、通过代码逐步实现

1.发送请求——模拟浏览器对于url地址发送请求

     模拟浏览器对于url地址发送请求
        模拟浏览器方法——可以直接复制:开发者工具->网络->点击对应数据包->标头->请求标头 ->cookie/ua/referer..(复制之后在代码中字典形式)

        请求网址:刚刚抓包分析找到链接地址,直接复制粘贴即可

        发送请求

                1)一般使用:第三方模块requests进行数据请求
                2)请求方法:开发者工具->网络->点击对应数据包->标头->常规
                        一般是有以下这两种:POST/GET


                3)请求参数
                        GET请求:查询参数(显性)
                                直接在链接中显示,可以不用额外构建
                                 比如:
                        POST请求:表单数据/请求载荷(隐性)
                                开发者工具->网络->点击对应数据包->载荷


2.获取数据——获取服务器返回响应数据

        获取服务器返回响应数据
        #获取响应的json数据
        json_data =response.json()
        注意:查看返回数据和在响应中是否一致,这里有三种情况: 1.正常返回数据(没有问题);2.返回了数据,但数据不是我们需要的(这种情况说明被反爬了); 3.没有返回数据(空白面板)。(这种情况说明被反爬了)。

        上述第二第三种情况解决方法:1.考虑请求头添加的参数伪装不够完善,只是添加ua,继续添加cookie参数..。2.请求参数/请求头是否存在加密参数内容
3.解析数据——提取我们需要的数据内容


4.保存数据——把提取数据保存为表格/数据库/json/文本

关于S值的逆向分析

对于不同翻译内容,有两个关键点:(1)text:输入需要被翻译的内容(文本内容);(2)s:不同文本内容值不同
        为了解决上述情况,经以下步骤逐步排查:1.根据s值,进行全局搜索,查看是否另外数据包返回; 2.根据s键,进行搜索,查看值是从什么地方生成:根据s键名搜索返回内容过于多、根据堆栈 跟栈调试 XHR断点调试、搜索MD5加密关键代码(MD5指的是长度32位,由0-9 a-f组合起来的值)

1.通过开发者工具搜索定位加密位置

这个关键字搜索出的数量比较少,方便进一步查找。

一个个点击查看是否包含S:

上述步骤可总结为:

2.断点调试分析

        (1)分析传入了什么参数,调了什么方法进行加密处理

        (2)输入翻译内容,执行翻译程序:程序会在我们断点位置暂停程序-->看到相关传入返回值
        

教程中的步骤:​​​​​​​

最终代码:

#导入数据请求模块(需要安装)
import requests
# 导入哈希模块
import hashlibdef Gets(key):string = f'autoen{key}109984457'MD5 = hashlib.md5()MD5.update(string.encode('utf-8'))s = MD5.hexdigest()return s
def translation(key):"""发送请求"""# 下面的参数都在网页的上headers ={#cookie 用户信息,常用于检测是否有登陆账号(登录与否都有)'Cookie': '*****',## User-Agent 用户代理,表示浏览器基本身份信息'User-Agent':'***'}#获取s的加密参数s = Gets(key)# 请求网址url = 'https://fanyi.sogou.com/api/transpc/text/result'#请求参数data ={"from":"auto","to":"en","text":key,"client":"pc","fr":"browser_pc","needQc":1,"s":s,"uuid":"****-**********", #每台电脑的都是不一样的,这里需要修改"exchange":False}#发送请求"""获取数据"""response =requests.post(url=url, json=data, headers=headers)# 获取响应的json数据json_data =response.json()#字典取值:提取翻译结果result = json_data['data']['translate']['dit']print('翻译结果:',result)return resultwhile True:# 用户输入翻译内容key = input('请输入你要翻译的内容:')translation(key)

这里注意,不要盲目把代码复制运行,因为每台电脑的某些参数是不一样的,需要一步步安装教程来修改!!!!

相关文章:

python制作翻译软件

本文复刻此教程:制作属于自己的翻译软件-很简单【Python】_哔哩哔哩_bilibili 一、明确需求(以搜狗翻译为例) (1)网址:https://fanyi.sogou.com/text (2) 数据:翻译内容…...

ollama+FastAPI部署后端大模型调用接口

ollamaFastAPI部署后端大模型调用接口 记录一下开源大模型的后端调用接口过程 一、ollama下载及运行 1. ollama安装 ollama是一个本地部署开源大模型的软件,可以运行llama、gemma、qwen等国内外开源大模型,也可以部署自己训练的大模型 ollama国内地…...

BERT:深度双向Transformer的预训练用于语言理解

摘要 我们介绍了一种新的语言表示模型,名为BERT,全称为来自Transformer的双向编码器表示。与最近的语言表示模型(Peters等,2018a;Radford等,2018)不同,BERT旨在通过在所有层中联合调…...

【AI-23】深度学习框架中的神经网络3

神经网络有多种不同的类型,每种类型都针对特定的任务和数据类型进行优化。根据任务的特点和所需的计算能力,可以选择适合的神经网络类型。以下是一些主要的神经网络类型及其适用的任务领域。 1. 深度神经网络(DNN) 结构&#xf…...

网站运营数据pv、uv、ip

想要彻底弄清楚pv uv ip的区别,首先要知道三者的定义: IP(独立IP)的定义: 即Internet Protocol,指独立IP数。24小时内相同公网IP地址只被计算一次。 PV(访问量)的定义: 即Page View,即页面浏览量或点击量,用户每次刷…...

高阶知识库搭建实战五、(向量数据库Milvus安装)

以下是关于在Windows环境下直接搭建Milvus向量数据库的教程: 本教程分两部分,第一部分是基于docker安装,在Windows环境下直接安装Milvus向量数据库,目前官方推荐的方式是通过Docker进行部署,因为Milvus的运行环境依赖于Linux系统。 如果你希望在Windows上直接运行Milvus…...

【TR369】RTL8197FH-VG+RTL8812F增加TR369 command节点

sdk说明 ** Gateway/AP firmware v3.4.14b – Aug 26, 2019**  Wireless LAN driver changes as:  Refine WiFi Stability and Performance  Add 8812F MU-MIMO  Add 97G/8812F multiple mac-clone  Add 97G 2T3R antenna diversity  Fix 97G/8812F/8814B MP issu…...

FPGA实现UART对应的电路和单片机内部配合寄存器实现的电路到底有何区别?

一、UART相关介绍 UART是我们常用的全双工异步串行总线,常用TTL电平标准,由TXD和RXD两根收发数据线组成。 那么,利用硬件描述语言实现UART对应的电路和51单片机内部配合寄存器实现的电路到底有何区别呢?接下来我们对照看一下。 …...

数据库模型全解析:从文档存储到搜索引擎

目录 前言1. 文档存储(Document Store)1.1 概念与特点1.2 典型应用1.3 代表性数据库 2. 图数据库(Graph DBMS)2.1 概念与特点2.2 典型应用2.3 代表性数据库 3. 原生 XML 数据库(Native XML DBMS)3.1 概念与…...

【Java基础】Java异常捕捉,throws/throw、finally、try、catch关键字的含义与运用

1. Java 异常处理: 异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。 比如说,你的代码少了一个分号,那么运行出来结果是提示是错 java.lang.Error;如果你用System.out.p…...

Android Studio 安装配置(个人笔记)

Android studio安装的前提是必须保证安装了jdk1.8版本以上 一、查看是否安装jdk cmd打开命令行,输入java -version 最后是一个关键点 输入 javac ,看看有没有相关信息 没有就下载jdk Android studio安装的前提是必须保证安装了jdk1.8版本以上 可以到…...

计算机网络——数据链路层-介质访问控制

一、介质访问控制方法 在局域网中, 介质访问控制(medium access control)简称MAC,也就是信道访问控制方法,可以 简单的把它理解为如何控制网络节点何时发送数据、如何传输数据以及怎样在介质上接收数据, 是解决当局域网中共用信道的使用产生竞…...

pytest日志显示

在 pytest 中,可以通过 钩子函数 和 配置文件 pytest.ini 配置日志的显示方式,实现对日志的灵活控制。以下是常用实现方式及配置说明。 方式一:使用 conftest.py 钩子函数自定义日志显示 通过 conftest.py 文件中的钩子函数,实现…...

【信息系统项目管理师】第15章:项目风险管理过程详解

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 一、规划风险管理1、输入2、工具与技术3、输出二、识别风险1、输入2、工具与技术3、输出三、实施定性风险分析1、输入2、工具与技术3、输出四、实施定量风险分析1、输入2、工具与技术3、输出五、规划风险应对1、…...

Diffusers 使用 LoRA

使用diffusers 加载 LoRA,实现文生图功能。摘自 diffusers文档。 模型可以根据名称去modelscope找对应资源下载。使用的时候需要替换成具体路径。虽然modelscope和diffusers都使用了模型id,但是并不能通用。 不同的LoRA对应了不同的“trigger” words&am…...

云安全博客阅读(二)

2024-05-30 Cloudflare acquires BastionZero to extend Zero Trust access to IT infrastructure IT 基础设施的零信任 不同于应用安全,基础设置的安全的防护紧急程度更高,基础设施的安全防护没有统一的方案IT基础设施安全的场景多样,如se…...

SpringCloud系列教程:微服务的未来(六)docker教程快速入门、常用命令

对于开发人员和运维工程师而言,掌握 Docker 的基本概念和常用命令是必不可少的。本篇文章将带你快速入门 Docker,并介绍一些最常用的命令,帮助你更高效地进行开发、测试和部署。 目录 前言 快速入门 docker安装 配置镜像加速 部署Mysql …...

Vue 快速入门:开启前端新征程

在当今的 Web 开发领域,Vue.js 作为一款极具人气的 JavaScript 前端框架,正被广泛应用于各类项目之中。它以简洁的语法、高效的数据绑定机制以及强大的组件化开发模式,为开发者们带来了前所未有的开发体验。如果你渴望踏入前端开发的精彩世界…...

UVM:uvm_component methods configure

topic UVM component base class uvm_config_db 建议使用uvm_config_db代替uvm_resource_db uvm factory sv interface 建议:uvm_config_db 以下了解 建议打印error...

LLM 训练中存储哪些矩阵:权重矩阵,梯度矩阵,优化器状态

LLM 训练中存储哪些矩阵 目录 LLM 训练中存储哪些矩阵深度学习中梯度和优化器是什么在 LLM 训练中通常会存储以下矩阵: 权重矩阵:这是模型的核心组成部分。例如在基于 Transformer 架构的 LLM 中,每一层的多头注意力机制和前馈神经网络都会有相应的权重矩阵。以 BERT 模型为…...

Python爬虫新手必看:Image-Downloader搭配ChromeDriver的完整配置指南(附常见报错解决)

Python爬虫实战:Image-Downloader与ChromeDriver的深度配置手册 当你第一次尝试用Python爬取网页图片时,是否曾被各种环境配置问题搞得焦头烂额?作为过来人,我完全理解那种看着满屏报错信息却无从下手的挫败感。本文将带你深入理解…...

m4s-converter实战秘籍:解锁B站缓存视频的通用播放能力

m4s-converter实战秘籍:解锁B站缓存视频的通用播放能力 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 当你在B站缓存了珍贵的学习资…...

% 的人都用错了!Playwright vs Chrome DevTools MCP到底该怎么选?素

一、环境准备 Free Spire.Doc for Python 是免费 Python 文档处理库,无需依赖 Microsoft Word,支持 Word 文档的创建、编辑、转换等操作,其中内置的 Markdown 解析能力,能高效实现 Markdown 到 Doc/Docx 格式的转换,且…...

支付集成的优雅革命:Yansongda Pay 如何让多平台接入变得如此简单

支付集成的优雅革命:Yansongda Pay 如何让多平台接入变得如此简单 【免费下载链接】pay 可能是我用过的最优雅的 Alipay/WeChat/Douyin/Unipay/江苏银行 的支付 SDK 扩展包了 项目地址: https://gitcode.com/gh_mirrors/pa/pay 还在为支付宝、微信、抖音、银…...

GitFS源码解读:Router、Worker和View三大核心组件分析

GitFS源码解读:Router、Worker和View三大核心组件分析 【免费下载链接】gitfs Version controlled file system 项目地址: https://gitcode.com/gh_mirrors/gi/gitfs GitFS作为一个版本控制文件系统(Version controlled file system)&…...

Cogito 3B效果展示:128K上下文内跨章节引用——技术白皮书重点定位实测

Cogito 3B效果展示:128K上下文内跨章节引用——技术白皮书重点定位实测 1. 引言:当模型能“记住”一整本书 想象一下,你拿到一份长达数百页的技术白皮书,里面包含了产品介绍、技术架构、性能参数、应用案例等十几个章节。你需要…...

告别固定指纹:手把手教你修改Chromium源码,实现TLS JA4指纹随机化

深度定制Chromium:实现TLS JA4指纹动态随机化的完整实践指南 在当今高度监控的网络环境中,浏览器指纹识别已成为追踪用户行为的主要手段之一。TLS JA4指纹作为新一代网络指纹技术,能够通过分析客户端在SSL/TLS握手阶段提供的加密套件顺序来唯…...

别再只用Console线了!eNSP里给路由器/交换机配置Telnet远程登录(含AAA认证详解)

华为eNSP实战:Telnet远程登录与AAA认证的进阶配置指南 每次调试设备都要插拔Console线?是时候解放你的双手了。作为网络工程师,Telnet远程登录是必须掌握的生存技能,而AAA认证则是企业级网络管理的标配。今天我们就用华为eNSP模拟…...

3分钟快速诊断网络NAT类型:NatTypeTester完整指南

3分钟快速诊断网络NAT类型:NatTypeTester完整指南 【免费下载链接】NatTypeTester 测试当前网络的 NAT 类型(STUN) 项目地址: https://gitcode.com/gh_mirrors/na/NatTypeTester 你是否曾经遇到过在线游戏卡顿、视频会议断断续续&…...

【GESP】C++一级真题 luogu-B4495, [GESP202603 一级] 交朋友

2026年3月,GESP一级真题,考察基础语句和逻辑,难度★☆☆☆☆。 B4495 [GESP202603 一级] 交朋友 题目要求 题目题解详见https://www.coderli.com/gesp-1-luogu-b4495/ https://www.coderli.com/gesp-1-luogu-b4495/https://www.coderli.co…...