对代码、编程感兴趣的能够关注老K玩代码和我交流!前端
“声明:本文旨在技术分享,谢绝以此投机取巧~!
出于好奇,我花了点本钱,把软件买了一下,而后研究了一下它背后的代码逻辑。web
from selenium.webdriver import Chrome
dr = Chrome() dr.implicitly_wait(5) dr.maximize_window()
from selenium.webdriver.chrome.options import Options options = Options() options.add_argument('--headless') dr = Chrome(options=options) dr.implicitly_wait(5) dr.maximize_window()
从上述截图,咱们能够看出,百度翻译的借口很是简洁,使用get方式写成的。图中zh就是输入语言名,en就是输出语言名,url连接最后就是须要翻译的文本内容。因而咱们的请求代码就能够写成这样chrome
url = f"https://fanyi.baidu.com/#{input_lang}/{output_lang}/{text}" dr.get(url)
发出请求后,等待几秒,等页面打开后,将相应的翻译文本保存到变量中
text = dr.find_element_by_class_name("target-output").text.strip()
不一样的翻译工具,借口和解析路径不一样。仍是须要一些前端的选择器知识才行。编程
这一步其实就是以前内容的重复,惟一区别就是把输入语言和输出语言进行对换。这里就再也不重复展现代码了。浏览器
以上说起的代码内容,仅用于展现和分享做业思路。完整代码以下:less
# encoding: utf-8 from selenium.webdriver import Chrome from selenium.webdriver.chrome.options import Options def do_repetition(text): options = Options() options.add_argument('--headless') dr = Chrome(options=options) dr.implicitly_wait(5) dr.maximize_window() for i in range(2): if i == 0: input_lang = 'zh' output_lang = 'en' else: input_lang = 'en' output_lang = 'zh' url = f"https://fanyi.baidu.com/#{input_lang}/{output_lang}/{text}" dr.get(url) text = dr.find_element_by_class_name("target-output").text.strip() dr.close() return text
若是想要真正实现文本降重的功能,可能还须要在细节上打磨一下,诸如:ide