爬虫——有道云翻译

废话不多说直接上代码

固定文本内容

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.mzph.cn/bicheng/23352.shtml

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

相关文章

Day 41 NGINX详解

Nginx详解 一、HTTP协议 HTTP协议是Hyper Text Transfer Protocol&#xff08;超文本传输协议&#xff09;的缩写,是用于从万维网&#xff08;WWW:World Wide Web &#xff09;服务器传输超文本到本地浏览器的传送协议。 1、HTTP 工作原理 HTTP协议通信流程 WEB Server&…

超维小课堂 | 6、MAVROS与机载电脑Jetson nano通信

MAVROS与机载电脑Jetson nano通信 ROS系统镜像——Jetson nano b01 4G 链接: 百度云镜像链接 链接&#xff1a;https://pan.baidu.com/s/1NoIEvVdsiYLPvVOWM98hjQ 提取码&#xff1a;cwkj 简介&#xff1a;MAVROS和Jetson nano通信&#xff0c;设置飞控参数和MAVROS文件&am…

Starlette

Starlette是一个轻量级的ASGI框架和工具包&#xff0c;主要用于构建高性能的asyncio服务。它具备以下特点&#xff1a; 轻量级HTTP Web框架&#xff1a;Starlette提供了一个简单且复杂度低的HTTP Web框架。WebSocket支持&#xff1a;允许在应用中实现WebSocket功能。后台任务&…

程序猿大战Python——了解Python

了解Python 编程语言的发展 目标&#xff1a;了解编程语言。 我们知道&#xff0c;咱们的日常沟通交流使用的语言&#xff1a;普通话。 那什么是编程语言呢&#xff1f; 【官方解释】编程语言是用来定义程序的语言形式&#xff0c;也就是说&#xff0c;我们可以通过编程语言…

学习使用js监测浏览器窗口大小变化

学习使用js监测浏览器窗口大小变化 在JavaScript中&#xff0c;可以通过监听resize事件来检测浏览器窗口的大小变化。以下是一个简单的示例代码&#xff0c;用于检测浏览器窗口大小的变化并在控制台输出新的窗口尺寸&#xff1a; javascript // 定义一个处理窗口大小变化的函数…

el-table后台接口返回数据动态合并单元格

在实际工作中&#xff0c;通常数据都是后台接口返回的&#xff0c;有时需要对数据进行合并&#xff0c;可利用el-table的span-method方法&#xff0c;结合数据处理&#xff0c;进行合并&#xff0c;如下实例 <el-table :data"dataTable"borderrow-key"id&qu…

root账号,cmd命令行能用ssh连上服务器,但是vscode连接报错Permission denied,please try again

☆ 问题描述 但是cmd能连接上 ★ 解决方案 点击 然后add到自己的配置文件下 重新选择 这个时候就会出现刚刚添加的&#xff0c;点击选择 输入密码 然后就ok了 ✅ 总结 只能说&#xff1a;玄学&#xff01;

剪画小程序:自媒体必备神器:【视频翻译】自动识别语言、翻译、配音,让外语视频秒变母语!

Hello&#xff0c;大家好呀&#xff01;我是不会画画的小画~ 今天给大家带来一款敲实用的视频翻译工具一一 小程序【剪画】 我们有很小伙伴在学习他国语言时&#xff0c;最大的障碍就是语言的问题了&#xff0c;想要 理解其中的内容&#xff0c;在这之前要下很大的功夫去掌握…

创业新风口:智能售货机的崛起

随着科技的飞速发展&#xff0c;智能售货机已经不再是简单的自动贩卖机&#xff0c;它们变得更加智能、灵活&#xff0c;能够适应各种场景需求&#xff0c;从传统的饮料、零食到新鲜水果、便当、甚至是电子产品&#xff0c;无所不包。这种24小时无人值守的商业模式&#xff0c;…

居民社区团购小程序源码系统 拼团管理+团长管理功能 带完整的安装代拿代码包以及搭建教程

系统概述 居民社区团购小程序源码系统是一款专为社区团购打造的一站式解决方案。它整合了拼团管理和团长管理等核心功能&#xff0c;能够帮助企业和创业者快速搭建自己的社区团购平台&#xff0c;实现高效运营和便捷管理。 代码示例 系统特色功能 1.拼团管理&#xff1a;支持…

工业互联网基本概念及关键技术(295页PPT)

资料介绍&#xff1a; 工业互联网的核心是通过工业互联网平台把设备、生产线、工厂、供应商、产品和客户紧密地连接融合起来。这种连接能够形成跨设备、跨系统、跨厂区、跨地区的互联互通&#xff0c;从而提高效率&#xff0c;推动整个制造服务体系智能化。同时&#xff0c;工…

Spark实战:Spark读取Excel文件

由于Apache Spark本身不支持直接读取Excel文件&#xff0c;我们需要通过一些间接手段来实现&#xff0c;例如先将Excel文件转换为CSV格式&#xff0c;然后使用Spark读取CSV文件。下面我将给出完整的Scala代码示例&#xff0c;包括如何将Excel文件转换为CSV文件&#xff08;这里…

Java环境配置(超详细)

Java环境配置&#xff08;超详细&#xff09; 引言1、安装 JDK1.1、下载安装JDK1.2、配置环境变量&#xff1a;JAVA_HOME1.3、将JAVA_HOME添加到Path中 2、安装 Maven2.1、下载安装Maven2.2、配置maven的环境变量: M2_HOME2.3、将Maven变量添加到Path中 引言 Java开发环境的配…

PyTorch 相关知识介绍

一、PyTorch和TensorFlow 1、PyTorch PyTorch是由Facebook开发的开源深度学习框架&#xff0c;它在动态图和易用性方面表现出色。它以Python为基础&#xff0c;并提供了丰富的工具和接口&#xff0c;使得构建和训练神经网络变得简单快捷。 发展历史和背景 PyTorch 是由 Fac…

创建采购订单免费行项目,注意事项

1.我在使用bapi&#xff08;BAPI_PO_CREATE1&#xff09;创建采购订单免费行项目的时候&#xff0c;还是报错了请输入净价格。 解决方式&#xff1a;把这些数据都赋值好&#xff0c;那么你的采购订单行项目就是免费项目。 BAPIMEPOITEM-IR_IND 空 &#xff08;发票收据标识&am…

文件传输新体验,这些中转站工具让你的职场生活更轻松

不知道大家有没有体验过华为手机的中转站功能&#xff0c;可以一键抓取图片或文件&#xff0c;暂时放在中转站中然后可以再拖到指定文件夹中。 华为手机的中转站功能&#xff0c;以其独特的跨应用文件传输能力&#xff0c;为用户带来了极大的便利。无论是图片、视频还是文档&am…

(2)空速传感器

文章目录 1 参数介绍 2 参数说明 1 参数介绍 Copter、Rover 和 Blimp 可以安装并启用一个空速传感器。然而&#xff0c;与用于导航和控制的 Plane 不同&#xff0c;这些飞行器只记录和报告读数&#xff0c;供地面控制站、OSD 和遥测中的显示器使用。在选择和安装空速传感器时…

git: 批量删除分支

环境&#xff1a; window11git version 2.42.0git-bash.exe window环境下&#xff1a; 1. 批量删除本地 git branch |grep xxx |xargs git branch -D比如&#xff1a; 想批量删除本地含有 release 关键字的分支&#xff1a; 2. 批量删除远程 git branch -r | grep xxxx | …

代码随想录算法训练营第五十一天| 121. 买卖股票的最佳时机、122.买卖股票的最佳时机II、123.买卖股票的最佳时机III

121. 买卖股票的最佳时机 一只股票只能买卖一次 代码随想录 . - 力扣&#xff08;LeetCode&#xff09; 输入&#xff1a;[7,1,5,3,6,4] 输出&#xff1a;5 解释&#xff1a;在第 2 天&#xff08;股票价格 1&#xff09;的时候买入&#xff0c;在第 5 天&#xff08;股票价…

(代码示例)for...in 循环会遍历数组的所有可枚举属性

for...in循环会遍历数组的所有可枚举属性&#xff0c;包括数组的索引和所有原型链上的属性。下面是一个例子&#xff1a; Array.prototype.myProperty Hello; // 添加一个属性到数组的原型链上let arr [1, 2, 3]; arr.myOwnProperty World; // 添加一个自有属性for (let pr…