本文通过样例来介绍 selenium 的基本用法
百度一下
谷歌翻译
谷歌翻译改进版本
selenium 简介
Selenium 是一个用于Web应用程序测试的工具。支持各种浏览器包括 Chrome、Firefox、Edge、Opera 等等,同时也支持 PhantomJS 无界面浏览器。
selenium 和 chromedriver
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()
selenium 和 PhantomJS
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()
运行结果:
中译英

中译日

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