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) 结构…...
网站运营数据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 模型为…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...

页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...

前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...

JVM 内存结构 详解
内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 每个线程都有一个程序计数…...
CSS | transition 和 transform的用处和区别
省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...

Windows安装Miniconda
一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...
苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会
在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...