爬虫——有道云翻译

废话不多说直接上代码

固定文本内容

import timefrom selenium import webdriver
from selenium.common.exceptions import NoSuchElementException, TimeoutException
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ECdriver = webdriver.Chrome()
# driver = webdriver.Chrome()
driver.get("https://fanyi.baidu.com/")driver.find_element(By.CLASS_NAME, "f9WVaz_4").click()text_to_input = """Sure! Here’s the classic fairy tale “Cinderella” in English:Once upon a time, there was a kind and beautiful girl named Cinderella. Her father married a wicked stepmother, who brought along two selfish and arrogant stepsisters.From that moment on, Cinderella became the household servant, doing countless chores every day, while her stepmother and stepsisters treated her cruelly.One day, the king announced a grand ball, inviting all the young maidens in the kingdom. Cinderella longed to attend, but her stepmother forbade her.Cinderella cried in disappointment, but then a fairy godmother appeared and helped her transform into a beautiful ball gown and provided her with a pair of glass slippers.Dressed in her magnificent attire, Cinderella went to the ball. There, the prince was captivated by her beauty and kindness.Unfortunately, time waits for no one, and when the clock struck midnight, Cinderella hurriedly left, leaving behind one of her glass slippers.The prince searched the kingdom, and only Cinderella’s foot could fit into the glass slipper. Eventually, Cinderella put on the glass slipper and became the prince’s princess, living happily ever after.From then on, Cinderella’s kindness and courage were remembered by all who knew her.
"""
# batch_size = 100  # 每个批次的文本数量
# for i in range(0, len(text_to_input), batch_size):
#     batch_text = text_to_input[i:i + batch_size]
#     try:
#         div_with_slate_node = driver.find_element(By.CSS_SELECTOR, "div[data-slate-node='element']")
#         div_with_slate_node.send_keys(batch_text)
#
#         # 使用显式等待等待文本输入完成
#         WebDriverWait(driver, 20).until(
#             EC.text_to_be_present_in_element((By.CSS_SELECTOR, "div[data-slate-node='element']"), batch_text))
#     except NoSuchElementException as e:
#         print("未找到指定的 div 元素:", e)div_with_slate_node = driver.find_element(By.CSS_SELECTOR, "div[data-slate-node='element']")
div_with_slate_node.send_keys(text_to_input)# WebDriverWait(driver, 13).until(
#             EC.text_to_be_present_in_element((By.CSS_SELECTOR, "div[data-slate-node='element']"), batch_text))# WebDriverWait(driver, 5).until(
#     EC.visibility_of_element_located((By.CSS_SELECTOR, "div[data-slate-node='element']")))# time.sleep(20)timeout = 20try:# 使用 driver.find_element 定位指定的元素div_element = WebDriverWait(driver, timeout).until(EC.presence_of_element_located((By.CLASS_NAME, "KzfYYzYR")))span_elements = div_element.find_elements(By.CSS_SELECTOR, ".nbyIWSn1 span")# 提取每个span元素的文本内容for span_element in span_elements:text_content = span_element.textprint(text_content)except TimeoutException:print("超时:在{}秒内未能成功获取数据".format(timeout))# 关闭浏览器
# driver.quit()

图形输入内容:

import random
from tkinter import *
from tkinter.ttk import *
from tkinter import ttk
import tkinter as tkfrom selenium import webdriver
from selenium.webdriver.common.by import Byimport time
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.options import Options
import tkinter.messagebox as mbclass WinGUIFy(Tk):def __init__(self):super().__init__()self.__win()self.tk_label_lwt9kgap = self.__tk_label_lwt9kgap(self)self.tk_input_lwt9lqdw = self.__tk_input_lwt9lqdw(self)self.tk_input_lwt9n2k3 = self.__tk_input_lwt9n2k3(self)self.tk_label_lwt9o4s7 = self.__tk_label_lwt9o4s7(self)self.tk_label_lwt9oj39 = self.__tk_label_lwt9oj39(self)self.tk_label_lwt9ta6h = self.__tk_label_lwt9ta6h(self)def File_like(self, even):try:chrome_options = Options()chrome_options.add_argument('--headless')  # 无界面模式chrome_options.add_argument('--disable-gpu')  # 禁用GPU加速driver = webdriver.Chrome(options=chrome_options)# driver = webdriver.Chrome()driver.get("https://fanyi.youdao.com/index.html#/")time.sleep(2)try:driver.find_element(By.CLASS_NAME,"close").click()except Exception as e:print("继续..")# 定位到包含文本为“翻译”的 span 元素的父元素 divbutton_element = driver.find_element(By.XPATH, "//div[@class='tab-item active color_text_1'][span='翻译']")# 点击按钮button_element.click()# 获取到文本框的值content = self.text_box.get("1.0", "end-1c")input_element = driver.find_element(By.ID, "js_fanyi_input")input_element.send_keys(content)time.sleep(4)text_content = driver.execute_script("return document.getElementById('js_fanyi_output_resultOutput').textContent;")print(text_content)self.text_name.config(state="normal")self.text_name.delete('1.0', tk.END)self.text_name.insert(tk.END, text_content)self.text_name.config(state="disabled")# 关闭浏览器driver.quit()except Exception as e:# 弹框提示网络不流畅mb.showerror("Error", "网络不流畅,请尝试更换网络!")def __win(self):self.title("Tkinter布局助手")# 设置窗口大小、居中width = 900height = 700screenwidth = self.winfo_screenwidth()screenheight = self.winfo_screenheight()geometry = '%dx%d+%d+%d' % (width, height, (screenwidth - width) / 2, (screenheight - height) / 2)self.geometry(geometry)self.resizable(width=False, height=False)def scrollbar_autohide(self, vbar, hbar, widget):"""自动隐藏滚动条"""def show():if vbar: vbar.lift(widget)if hbar: hbar.lift(widget)def hide():if vbar: vbar.lower(widget)if hbar: hbar.lower(widget)hide()widget.bind("<Enter>", lambda e: show())if vbar: vbar.bind("<Enter>", lambda e: show())if vbar: vbar.bind("<Leave>", lambda e: hide())if hbar: hbar.bind("<Enter>", lambda e: show())if hbar: hbar.bind("<Leave>", lambda e: hide())widget.bind("<Leave>", lambda e: hide())def v_scrollbar(self, vbar, widget, x, y, w, h, pw, ph):widget.configure(yscrollcommand=vbar.set)vbar.config(command=widget.yview)vbar.place(relx=(w + x) / pw, rely=y / ph, relheight=h / ph, anchor='ne')def h_scrollbar(self, hbar, widget, x, y, w, h, pw, ph):widget.configure(xscrollcommand=hbar.set)hbar.config(command=widget.xview)hbar.place(relx=x / pw, rely=(y + h) / ph, relwidth=w / pw, anchor='sw')def create_bar(self, master, widget, is_vbar, is_hbar, x, y, w, h, pw, ph):vbar, hbar = None, Noneif is_vbar:vbar = Scrollbar(master)self.v_scrollbar(vbar, widget, x, y, w, h, pw, ph)if is_hbar:hbar = Scrollbar(master, orient="horizontal")self.h_scrollbar(hbar, widget, x, y, w, h, pw, ph)self.scrollbar_autohide(vbar, hbar, widget)def __tk_label_lwt9kgap(self, parent):label = Label(parent, text="翻译中心", anchor="center", )label.place(x=319, y=29, width=277, height=30)return label# 输入def __tk_input_lwt9lqdw(self, parent):self.text_box = tk.Text(parent, )self.text_box.place(x=21, y=110, width=385, height=456)self.text_box.bind("<Return>", self.File_like)return self.text_boxdef __tk_input_lwt9n2k3(self, parent):self.text_name = tk.Text(parent, state="disabled")self.text_name.place(x=480, y=107, width=407, height=459)return self.text_namedef __tk_label_lwt9o4s7(self, parent):label = Label(parent, text="内容区", anchor="center", )label.place(x=159, y=69, width=121, height=30)return labeldef __tk_label_lwt9oj39(self, parent):label = Label(parent, text="翻译区", anchor="center", )label.place(x=656, y=65, width=80, height=30)return labeldef __tk_label_lwt9ta6h(self, parent):label = Label(parent, text="回\n车\n执\n行\n", anchor="center", )label.place(x=417, y=105, width=50, height=235)return labelclass Win(WinGUIFy):def __init__(self, controller):self.ctl = controllersuper().__init__()self.__event_bind()self.__style_config()self.ctl.init(self)def __event_bind(self):passdef __style_config(self):passif __name__ == "__main__":win = WinGUIFy()win.mainloop()

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

五大PS插件推荐,让你的设计效率翻倍!

前言 PS插件可以在繁忙的设计工作中&#xff0c;帮助设计师们快速高效地完成任务&#xff0c;是每个设计师都渴望解决的问题。这些插件不仅能够提升设计效率&#xff0c;还能让设计师的创意得到更好的展现。接下来&#xff0c;就为大家推荐五款必备的PS插件&#xff0c;让你的…

GA/T 1400视频汇聚平台EasyCVR级联后,平台显示无通道是什么原因?

国标GB28181安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台部署轻快&#xff0c;可支持的主流标准协议有GA/T 1400、国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。 有用户反馈&#xff…

小程序 UI 风格,独具匠心

小程序 UI 风格&#xff0c;独具匠心

uni-app预览pdf(适配多端)

前言 今天有个功能要在当前页面预览pdf&#xff0c;并且适配多端&#xff0c;研究了好久&#xff0c;也踩了好多坑&#xff0c;写个文章记一下&#xff0c;也给各位避避坑~ uni-app预览pdf 1.下载pdf.js 官方下载地址&#xff08;有坑&#xff01;待会儿说&#xff09; 外部…

深度神经网络——什么是扩散模型?

1. 概述 在人工智能的浩瀚领域中&#xff0c;扩散模型正成为技术创新的先锋&#xff0c;它们彻底改变了我们处理复杂问题的方式&#xff0c;特别是在生成式人工智能方面。这些模型基于高斯过程、方差分析、微分方程和序列生成等坚实的数学理论构建。 业界巨头如Nvidia、Google…

锐捷校园网自助服务系统 login_judge.jsf 任意文件读取漏洞复现(XVE-2024-2116)

0x01 产品简介 锐捷校园网自助服务系统是锐捷网络推出的一款面向学校和校园网络管理的解决方案。该系统旨在提供便捷的网络自助服务,使学生、教职员工和网络管理员能够更好地管理和利用校园网络资源。 0x02 漏洞概述 校园网自助服务系统/selfservice/selfservice/module/sc…

Alibbaba RocketMQ笔记

作用场景 异步解耦: 将比较耗时且不需要即时(同步)返回结果 的操作放入消息队列; 流量削峰: 历史简介 基本使用 深入了解\原理

目标检测-AnyLabeling标注格式转换成YOLO格式

Anylabel可以极大的增加数据的标注效率&#xff0c;但是其标注格式如何能转换成YOLO标注格式&#xff0c;具体内容如下所示。 关于AnyLabeling的其它详细介绍如下链接所示 https://blog.csdn.net/u011775793/article/details/134918861 Github链接 https://github.com/vietanhd…

关于按键消抖方法—软件消抖

在设计单片机按键输入的时候&#xff0c;进行按键消抖是防止按键输入被CPU误读多次的必要手段。 一、按键消抖方法&#xff08;软件&#xff09; 如果按键较多的情况下&#xff0c;常用软件方法消抖 &#xff08;1&#xff09;延时消抖&#xff08;延时函数按键消抖&#xf…

【Linux 网络编程】OSI 七层模型初识、网络传输的流程、IP地址和MAC地址!

文章目录 1. OSI七层模型2. TCP/IP五层(或四层)模型3. 网络传输基本流程 &#x1f427;&#x1f427;&#x1f427;&#x1f427;&#x1f427;&#x1f427;&#x1f427;&#x1f427;&#x1f427;&#x1f427;&#x1f427;&#x1f427;&#x1f427;&#x1f427;&#…

uni-app基础框架搭建(vue3+ts+vite)

1.基础准备 uni-app官网uni-app,uniCloud,serverless,环境安装,创建uni-app,自定义模板,国内特殊情况,更新依赖到指定版本,运行、发布uni-app,运行并发布快应用,运行并发布快应用(webview),运行并发布快应用(webview)-华为,cli创建项目和HBuilderX可视化界面创https://uniapp.…

人大金仓数据库报sys_user表字段不存在的问题

目录 一.问题&#xff1a; 二.原因 三.解决方法&#xff1a; 一.问题&#xff1a; 公司的一个项目从oracle切换到人大金仓之后&#xff0c;突然报了一个sys_user里面的字段不存在。 二.原因 检查了很多次确信sys_user表没问题&#xff0c;查了相应的文档之后发现原来人大金…

企业数字化转型的主要方面有哪些?

本人研究企业数字化转型10余年&#xff0c;为企业软件选型、数字化提供咨询服务&#xff01;目前重点研究低代码数字化转型玩法&#xff0c;力争为各行各业探索出一条最具性价比的数字化方式。 关于“企业数字化转型包括哪些方面”这个问题&#xff0c;咱先来看个例子哈~ 比如…

前端将xlsx转成json

第一种方式&#xff0c;用js方式 1.1先安装插件 万事都离不开插件的支持首先要安装两个插件 1.2. 安装xlsx cnpm install xlsx --save注&#xff1a;这块我用的cnpm&#xff0c;原生的是npm&#xff0c;因为镜像的问题安装了cnpm&#xff0c;至于怎么装网上一搜一大堆 1.3安…

正则表达式运用

已经写了表达式&#xff0c;下一步就是匹配字符串得到结果 使用matcher的源码&#xff08;匹配&#xff09;普通方法&#xff0c;find&#xff08;寻找&#xff09;合适的代码&#xff0c;看字符串是否匹配成功 是否可以匹配上 匹配么&#xff0c;匹配就留下&#xff0c;fin…

代码随想录算法训练营第二十五天| 216. 组合总和 III、17. 电话号码的字母组合

[LeetCode] 216. 组合总和 III [LeetCode] 216. 组合总和 III 文章解释 [LeetCode] 216. 组合总和 III 视频解释 题目: 找出所有相加之和为 n 的 k 个数的组合&#xff0c;且满足下列条件&#xff1a; 只使用数字1到9每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该…

kafka学习笔记 @by_TWJ

目录 1. 消息重复消费怎么解决1.1. 确保相同的消息不会被重复发送(消费幂等性)1.2. 消息去重1.3. 消息重试机制1.4. kafka怎么保证消息的顺序性1.4.1. 利用分区的特征&#xff1a;1.4.2. 解决办法&#xff1a;1.4.3. 分区分配策略1.4.3.1. RangeAssignor &#xff08;每组(Topi…

实用商务口语:“企业文化”用英语怎么说?柯桥学英语去银泰

企业文化是指企业员工共有的一套观念、信念、价值和价值行为准则&#xff0c;以及由此导致的行为模式。 英文可以说&#xff1a;enterprise / company / corporate culture。 情景对话练习01 A:Your company made a lot of achievements last year; how do you make it? 你们…

Windows系统没有Hyper-v的解决方法

在控制面板-程序-启用或关闭Windows功能下找不到Hyper-v节点 Windows10解决方法&#xff1a; 解决办法 1.将下面命令复制到文本文档中&#xff0c;并将文档重命名Hyper.cmd pushd "%~dp0" dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt …

数据结构———链表

链表是经常用到的一种基础数据结构&#xff0c;接下来我们讲讲链表。 链表&#xff1a; 特点&#xff1a; 链表可分为有头/无头链表&#xff0c;循环/无环&#xff0c;双向/单向链表&#xff0c;每个链表节点都包含一个数据和下一个链表节点的地址。 每个链表节点都指向下一…