對代碼、編程感興趣的能夠關注老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