用Python爬虫制作一个简易翻译器
我们通常是通过requests+BS4的方法来获取网页内容,这种方法导入模块较多,速度相对有点儿慢,此时我们可以用requests的post方法向指定服务器发送请求,获取数据后格式化为json,然后获取相关键值。这种方法用到了requests和json两个模块,通过headers进行伪装。
一、获取网页翻译源码
import requests# 定义请求的 URL 和数据
url = 'https://fanyi.so.com/index/search'
data = {'eng': '1', 'validate': '', 'ignore_trans': '0', 'query': 'as well'}
# 伪装
headers = {'useragent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Mobile Safari/537.36 Edg/128.0.0.0','pro': 'fanyi'
}# 发送 POST 请求并获取响应
response = requests.post(url=url, headers=headers, data=data).json()# 提取翻译文本
translated_text = response['data']['fanyi']
print(translated_text)
二、代码解读
1. URL 和请求数据:请求的目标 URL 是 http://fanyi.so.com,用于查询翻译结果。请求数据中,query 是我们需要翻译的文本,这里设定为 "as well"。
2. 请求头:通过 headers 指定浏览器标识,模拟真实用户访问。这样可以避免请求被认为是机器人访问而被拦截。
3. POST 请求:使用 requests.post() 发送 POST 请求,并将服务器返回的 JSON 响应转换为字典。
4. 提取翻译:响应数据的 data['fanyi'] 字段包含了翻译后的文本。代码最后将该翻译结果输出。
三、优化代码
上面的代码有几个问题1.不是连续提问,2. 只能英译汉,3. 没有列出音标。于是,我们根据需求又对上述代码进行更新。增加while循环,可以连续提问题;同时判断翻译后的结果和要翻译的内容是否一致,如果一致说明语言设置那里有误就进行更改eng为2;同时加入try...except,增加获取单词音标phonetic。于时,我们就得到下面的代码:
import requests,jsonurl = 'https://fanyi.so.com/index/search'headers = {'useragent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Mobile Safari/537.36 Edg/128.0.0.0','pro':'fanyi'}while True:word = input("请输入单词:")data = {'eng':'1','validate':'','ignore_trans':'0','query': word,}JSON = requests.post(url=url,headers=headers,data=data).json()meaning = JSON['data']['fanyi']if meaning == word: #判断译文和原文是否一致data = {'eng':'2','validate':'','ignore_trans':'0','query': word,}JSON = requests.post(url=url,headers=headers,data=data).json() meaning = JSON['data']['fanyi'] try:phonetic = JSON['data']['explain']['phonetic']['英']except:phonetic = ""print(word,phonetic,meaning)
代码运行结果显示结果如下:
代码运行结果
四、注意事项
1. 如果想获取请求的域名,要通过chrome打开网页,输入一个单词如hello,然后按下F12,查看标头,找到请求网址。
获取请求网址
2. 在载荷中找到post的数据,存入到data变量:
找到发送的数据内容。
3. 发送的数据变量data中eng的键值为1是英译中,2是中译英。
相关文章:

用Python爬虫制作一个简易翻译器
我们通常是通过requestsBS4的方法来获取网页内容,这种方法导入模块较多,速度相对有点儿慢,此时我们可以用requests的post方法向指定服务器发送请求,获取数据后格式化为json,然后获取相关键值。这种方法用到了requests和…...

Shader Graph Create Node
一、Artistic 1、Adjustment 1)、Channel Mixer(通道混合) 根据权重对每个通道进行混合。 Contrast(对比度) 可调整对比度 调整对比度可以改变图像的鲜明度和层次感。增加对比度会使图像中的明暗差异更加显著,使图像看起来更加清晰、明亮;减少对比…...

共模干扰的形成和滤除
1、共模就是共同对地的干扰: 如图,我们可以看到共模的原理图。UPQ就是共模电压,ICM1 ICM2 就是共模电流。 ICM1 ICM2 大小不一定相同,方向相同。 2、共模信号和差模信号的区别: 通常电源线有三根线:火线L、…...

(计算机网络)运输层
一.运输层的作用 运输层:负责将数据统一的交给网络层 实质:进程在通信 TCP(有反馈)UDP(无反馈) 二.复用和分用 三. TCP和UDP的特点和区别 进程号--不是固定的 端口号固定--mysql--3306 端口--通信的终点 …...
基于深度学习的信号滤波:创新技术与应用挑战
一、引言 1.1 研究背景 随着科技的不断发展,信号处理领域面临着越来越复杂的挑战。在众多信号处理技术中,基于深度学习的信号滤波技术逐渐崭露头角,成为研究的热点。 基于深度学习的信号滤波在信号处理领域具有至关重要的地位。如今&#…...

MFC工控项目实例之十一板卡测试信号输入界面
承接专栏《MFC工控项目实例之十添加系统测试对话框》 相关代码 1、在BoardTest.h文件中添加代码 class CBoardTest : public CDialog { // Construction public:CBoardTest(CWnd* pParent NULL); // standard constructorCButtonST m_btnStart[16];CWinThread* pThread…...

sql中索引查看是否生效
在pg数据库中有多种索引存在,在一般情况下我们取使用普通索引 以下是一些常见导致索引未命中的原因和优化策略 1.如果查询中的条件与索引字段的顺序不匹配,或者索引字段没有完全包含在查询条件中,索引可能不会被使用。 2.在查询中使用函数…...
SpringBoot常见面试题
1.请说一说Spring Boot的自动装配原理? SpringBootApplication EnableAutoConfiguration AutoConfigurationImportSelector组件 SpringFactoriesLoader读取 (1)META-INF/spring.factories 或者 (2)org.springframework…...

springboot优雅停机无法关闭进程,kill无法停止springboot必须kill -9,springboot线程池使用
背景最近项目在jenkins部署的时候发现部署很慢,查看部署日志发现kill命令执行后应用pid还存在,导致必须在60秒等待期后kill -9杀死springboot进程 应用环境 springboot <dependency><groupId>org.springframework.boot</groupId>&l…...
【系统架构设计师-2015年真题】案例分析-答案及详解
更多内容请见: 备考系统架构设计师-核心总结索引 文章目录 【材料1】问题1问题2【材料2】问题1问题2问题3【材料3】问题1问题2问题3【材料4】问题1问题2问题3【材料5】问题1问题2问题3【材料1】 阅读以下关于软件架构评估的说明,在答题纸上回答问题1和问题2。 【说明】某软件…...
MongoDB设置系统服务启动教程
1、编辑mongodb.service文件 将MongoDB设置成系统服务,就可以通过systemctl进行启动停止重启,在目录/etc/systemd/system下编写mongodb.service文件: [Unit] DescriptionMongoDB Database Server Documentationhttps://www.mongodb.com/docs…...

mysql学习教程,从入门到精通,MySQL WHERE 子句(10)
1、SQL WHERE 子句 在本教程中,您将学习如何使用SQL从表中选择特定记录。 根据条件选择记录 在上一章中,我们学习了如何从表或表列中获取所有记录。但是,在现实世界中,我们通常只需要选择,更新或删除满足某些条件的那…...
设计模式】Listener模式和Visitor模式的区别
文章目录 前言一、介绍Listener模式Visitor模式 二、代码实现2.1 Listener模式的Java实现2.2Listener模式的Go实现2.3Visitor模式的Java实现2.4Visitor模式的Go实现 三、总结 前言 在软件设计中,设计模式是解决特定问题的通用解决方案。Listener模式和Visitor模式是…...
基于事件序列的数据获取
Data Get 31670 /S Update 2 AI_PC 3Mins /次 Import "Hggw" PI Data AABB020240908_115221_31781 AABB020240908_115521_31781 AABB020240908_115821_31781 1、From PIdata Copy 2 AI PC 2、AI PC UI Chart & Logic OK NG Pump:&#x…...

太速科技-基于XC7Z100+AD9361的双收双发无线电射频板卡
基于XC7Z100AD9361的双收双发无线电射频板卡 一、板卡概述 基于XC7Z100AD9361的双收双发无线电射频板卡是基于Xilinx ZYNQ FPGA和ADI的无线收发芯片AD9361开发的专用功能板卡,用于4G小基站,无线图传,数据收发等领域。 二、板卡…...

探索UWB技术的独特优势:实现高精度定位
UWB定位技术是一种利用无线信号进行精确位置定位的技术,它利用超宽带无线电信号通过测量信号的到达时间、相位差和信号能量等参数来确定物体的精确位置。 UWB定位技术具有多种优势,首先,它具有较高的定位精度,可实现毫米级的精确…...

软件安装攻略:Sublime Text 下载安装和使用教程
Sublime Text 下载安装和使用教程 Sublime Text是一个流行的跨平台文本编辑器,它具有以下一些主要功能和特点: (1)简洁的界面和快速的速度:Sublime Text拥有简约干净的界面,启动和响应速度很快。 &#…...
ip地址为什么要轮换
在网络世界中,IP地址是设备与互联网通信的身份证。然而,单一的IP地址可能会因为各种原因而需要轮换。IP轮换是指在一定时间内更换正在使用的IP地址,这一策略在多种网络应用中发挥着重要作用。本文将探讨IP地址轮换的原因、其带来的优势以及实…...

C++ 继承【一篇让你学会继承】
1. 继承的概念及定义 1.1 继承的概念 继承机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特征的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构&…...

DeviceNet网关HT3S-DNS-MDN读取七星华创CS310空气流量计数据应用案例
七星华创流量计CS310系列 (MODBUS RTU) 通过DeviceNet网关HT3S-DNS-MDN 与台达DVP系列的PLC进行交换数据应用案例 一、概述 本文主要介绍使用HI-TOP网关 HT3S-DNS-MDN在台达DVP系列 PLC和七星华创CS310流量计之间进行数据交换。 解决的问题:台达DVP系列如何通过…...

stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...

基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...

学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...

Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...

ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...

Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...