分享

Python 用 selenium 做个简单的谷歌翻译

 文炳春秋 2020-03-14

本文通过样例来介绍 selenium 的基本用法
百度一下
谷歌翻译
谷歌翻译改进版本

selenium 简介

Selenium 是一个用于Web应用程序测试的工具。支持各种浏览器包括 Chrome、Firefox、Edge、Opera 等等,同时也支持 PhantomJS 无界面浏览器。

seleniumchromedriver

chromedriver 下载地址:http://npm./mirrors/chromedriver/

设置全局变量或将 chromedriver.exe 复制到 python 的 Scripts 目录下

自动百度

以下样例实现了打开百度,输入‘杭州’,点击百度一下按钮

from selenium import webdriver
import time

#启动谷歌浏览器
driver=webdriver.Chrome()
#如果chromedriver.exe没有设置全局变量,用以下语句
#driver=webdriver.Chrome(executable_path='你的chromedriver.exe路径')
driver.get('https://www.baidu.com/')
#获取输入框元素
search_txtbox=driver.find_element_by_class_name('s_ipt')
#在输入框中输入杭州
search_txtbox.send_keys(u'杭州')
#获取百度一下按钮
btn=driver.find_element_by_class_name('s_btn')
#点击按钮
btn.click()
time.sleep(3)
driver.close()

seleniumPhantomJS

PhantomJS 下载地址:http://npm./dist/phantomjs/

设置全局变量或将 phantomjs.exe 复制到 python 的 Scripts 目录下

谷歌翻译

以下样例实现了打开谷歌翻译,输入 hello hangzhou ,获取并输出翻译结果

from selenium import webdriver
import time

driver=webdriver.PhantomJS()
#如果phantomjs.exe没有设置全局变量,用以下语句
#driver=webdriver.PhantomJS(executable_path='你的phantomjs.exe路径')
#打开谷歌翻译
driver.get('https://translate.google.cn/')
#获取文本输入域
text_dummy=driver.find_element_by_class_name('tlid-source-text-input')
text_dummy.clear()
#输入 hello hangzhou
text_dummy.send_keys('hello hangzhou')
time.sleep(1)

text_translation=driver.find_element_by_xpath('//span[@class="tlid-translation translation"]/span')
#输入翻译结果
print(text_translation.text)
driver.close()

谷歌翻译改进版

from selenium import webdriver
import time

driver = webdriver.PhantomJS()
driver.get('https://translate.google.cn/')
while True:

    text_dummy = driver.find_element_by_class_name('tlid-source-text-input')
    text_dummy.clear()
    print(u'\n请输入要翻译的内容,输入q退出程序\n')
    content = input()
    if content=='q':
        break
    text_dummy.send_keys(content)
    time.sleep(1)

    text_translation = driver.find_element_by_xpath(
        '//span[@class="tlid-translation translation"]/span')

    print(u'翻译结果:\n'+text_translation.text)
driver.close()

运行结果:
在这里插入图片描述

谷歌翻译多语言版本

from selenium import webdriver
import time


def get_input_lang(languages):
    print(u'请选择输入语言,输入数字即可\n')
    print(u'0、英语\n1、中文\n2、日语\n3、韩语\n4、法语\n')
    while True:
        try:
            input_num = int(input())
            return languages[input_num]
        except:
            print(u'输入有误,请重新输入!!!\n')


def get_output_lang(languages):
    print(u'请选择输出语言,输入数字即可\n')
    print(u'0、英语\n1、中文\n2、日语\n3、韩语\n4、法语\n')
    while True:
        try:
            output_num = int(input())
            return languages[output_num]
        except:
            print(u'输入有误,请重新输入!!!\n')


def google_trans():
    languages = ['en', 'zh-CN', 'ja', 'ko', 'fa']

    input_lang = get_input_lang(languages)
    output_lang = get_output_lang(languages)

    print(u'您的输入语言为[%s],输出语言为[%s]\n' % (input_lang, output_lang))
    url = 'https://translate.google.cn/#view=home&op=translate&sl=%s&tl=%s' % (
        input_lang, output_lang)
    print(url)

    print('程序初始化中,请稍等...\n')

    driver = webdriver.PhantomJS(executable_path='phantomjs.exe')
    #driver.get('https://translate.google.cn/')
    driver.get(url)
    while True:

        text_dummy = driver.find_element_by_class_name(
            'tlid-source-text-input')
        text_dummy.clear()
        print(u'\n请输入要翻译的内容,输入q退出程序\n')
        content = input()
        if content == 'q':
            break
        text_dummy.send_keys(content)
        time.sleep(1)

        text_translation = driver.find_element_by_xpath(
            '//span[@class="tlid-translation translation"]/span')

        print(u'翻译结果:\n'+text_translation.text)
    driver.close()


if __name__ == '__main__':
    google_trans()

运行结果:

中译英
在这里插入图片描述

中译日

在这里插入图片描述

实现功能不是目的,在功能实现过程中把不知道的内容转化为自己的知识,才是我们的目的。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多