做一个简单的语音播报天气。
一、主要所用模块。
selenium
pyttsx3
本人用谷歌浏览器,使用selenium要实现网页自动化就需要安装驱动,安装驱动就要对应浏览器版本。这里给上谷歌浏览器驱动下载网址进口。链接: link
二、实现网页自动化获取数据
1.代码如下
代码如下(示例):
driver = webdriver.Chrome() #创建浏览器对象
driver.get('https://tianqi.2345.com/')
time.sleep(3) # 强制等待3秒,等待页面加载
city = driver.find_element(By.CSS_SELECTOR, '.banner-city-change a span').text
top_temperature = driver.find_element(By.CSS_SELECTOR, '.banner-whether-desc a span').text
temperature = driver.find_element(By.CSS_SELECTOR,
'.banner-whether-list.clearfix dl dd:nth-child(1) a div .sp-bold').text
uv = driver.find_element(By.CSS_SELECTOR, '.banner-whether-list.clearfix dl dd:nth-child(2) a div .sp-bold').text
humidity = driver.find_element(By.CSS_SELECTOR, '.banner-whether-list.clearfix dl dd:nth-child(3) a div .sp-bold').text
new_time = driver.find_element(By.CSS_SELECTOR, '.banner-whether-list.clearfix dl dd:nth-child(4) a').text
a = {'城市': city, '最高温度': top_temperature, '平均温度': temperature, '紫外线': uv, '湿度': humidity, '更新时间': new_time}
print(a)
driver.quit( )
2.设置语音播报
代码如下(示例):
import pyttsx3
wether = pyttsx3.init()
wether.say(a)
wether.runAndWait()
3.设置无头模式。
想要不打开浏览器就能获取数据,可以设置无头模式。
代码如下(示例):
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument('--headless')
driver = webdriver.Chrome(options=options)
总代码如下
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
import pyttsx3
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument('--headless')
driver = webdriver.Chrome(options=options)
driver.get('https://tianqi.2345.com/')
time.sleep(3)
city = driver.find_element(By.CSS_SELECTOR, '.banner-city-change a span').text
top_temperature = driver.find_element(By.CSS_SELECTOR, '.banner-whether-desc a span').text
temperature = driver.find_element(By.CSS_SELECTOR,
'.banner-whether-list.clearfix dl dd:nth-child(1) a div .sp-bold').text
uv = driver.find_element(By.CSS_SELECTOR, '.banner-whether-list.clearfix dl dd:nth-child(2) a div .sp-bold').text
humidity = driver.find_element(By.CSS_SELECTOR, '.banner-whether-list.clearfix dl dd:nth-child(3) a div .sp-bold').text
new_time = driver.find_element(By.CSS_SELECTOR, '.banner-whether-list.clearfix dl dd:nth-child(4) a').text
a = {'城市': city, '最高温度': top_temperature, '平均温度': temperature, '紫外线': uv, '湿度': humidity, '更新时间': new_time}
print(a)
wether = pyttsx3.init()
wether.say(a)
wether.runAndWait()
driver.quit( )