爬虫——有道云翻译

废话不多说直接上代码

固定文本内容

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…

程序猿大战Python——了解Python

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

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;工…

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…

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 | …

腾讯云Edgeone为我的网站保驾护航

文章目录 前言边缘安全加速平台介绍模拟网站被攻击攻击脚本攻击脚本执行 网站快速接入 EdgeOne前提条件&#xff08;注意事项&#xff09;添加站点添加加速域名 EdgeOne 防护效果EdgeOne 体验感受总结 前言 众所周知&#xff0c;网站如果没有安全防护&#xff0c;极易遭受恶意…

github异常问题总结

问题1&#xff1a; gitgitlab.gz.cvte.cn: Permission denied (publickey). fatal: Could not read from remote repository.Please make sure you have the correct access rights and the repository exists.解决方法&#xff1a; 这个错误表示 GitLab 服务器拒绝了你的 SSH…

「动态规划」如何求下降路径最小和?

931. 下降路径最小和https://leetcode.cn/problems/minimum-falling-path-sum/description/ 给你一个n x n的方形整数数组matrix&#xff0c;请你找出并返回通过matrix的下降路径的最小和。下降路径可以从第一行中的任何元素开始&#xff0c;并从每一行中选择一个元素。在下一…

【Altium】AD-原理图中使用多通道问题

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 解决在原理图主图中&#xff0c;对子图使用多通道命令后&#xff0c;子图未形成多个通道的问题。 2、 问题场景 客户手中的工程文件&#xff0c;主图中对子图使用了多通道命令&#xff0c;子图图纸并未形成多通道…

【全开源】废品回收垃圾回收小程序APP公众号源码PHP版本

&#x1f31f;废品回收小程序&#xff1a;绿色生活的新助手&#x1f331; 一、引言 随着环保意识的逐渐提高&#xff0c;废品回收成为了我们日常生活中的重要一环。但是&#xff0c;如何更方便、高效地进行废品回收呢&#xff1f;今天&#xff0c;我要向大家推荐一款超级实用…

flutter封装日历选择器(单日选择)

简单封装&#xff1a; 引入库&#xff1a;table_calendar import package:generated/l10n.dart; import package:jade/utils/JadeColors.dart; import package:jade/utils/Utils.dart; import package:util/easy_loading_util.dart; import package:flutter/material.dart; im…

HTML跨年烟花

目录 写在前面 关于小编 HTML简介 程序设计 系列文章 写在后面 写在前面 学会了这个html烟花秀&#xff0c;跨年就不缺文案喽~ 关于小编 平易近人&#xff0c;慈眉善目&#xff0c;爱交朋友&#xff0c;舍己为人&#xff0c;和蔼可亲&#xff0c;能说会道&#xff0c;…