版权声明:版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/z564359805/article/details/85762374
#!/usr/bin/env python
# coding=utf-8
# 获取股票数据并播报
import requests,re
import win32com.client
import datetime
class Check():
def __init__(self):
self.speaker = win32com.client.Dispatch("SAPI.SpVOice")
self.headers = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.62 Safari/537.36"}
# url = 'http://hq.sinajs.cn/?format=text&list=sh603616,sz002024'
hanjian_url = 'http://hq.sinajs.cn/list=s_sh603616' # 韩建河山
suning_url = 'http://hq.sinajs.cn/list=s_sz002024' # 苏宁易购
# url = 'http://finance.sina.com.cn/realstock/company/sh603616/nc.shtml?from=BaiduAladin'
self.url_list = [hanjian_url,suning_url]
# 当前的时间分钟数减去7分钟然后再减去46秒后得出的时间
# (datetime.datetime.now()-datetime.timedelta(minutes=7)-datetime.timedelta(seconds=46)).strftime('%H:%M:%S')
# 处理时间
def nowtime(self):
# time_url = 'http://www.beijing-time.org/'
time_url = 'http://time.beijing-time.org/time.asp'
response = requests.get(time_url, headers=self.headers)
time_html = response.text
time_list = time_html.split(";")
patt = re.compile(r"\d+")
year = patt.findall(time_list[1])[0]
month = patt.findall(time_list[2])[0]
day = patt.findall(time_list[3])[0]
hour = patt.findall(time_list[5])[0]
minute = patt.findall(time_list[6])[0]
sec = patt.findall(time_list[7])[0]
# 获取北京标准时间
# self.now_time = "%s:%s:%s" % (hour, minute, sec)
self.now_time = "%s-%s-%s %s:%s:%s" % (year,month,day,hour, minute, sec)
# 将字符串格式的日期时间转换成日期格式方便比较
result_now_time = datetime.datetime.strptime(self.now_time, "%Y-%m-%d %H:%M:%S")
# 当天的11:30:00时间转换成日期格式
eleven_half_time = "%s-%s-%s 11:30:00" %(year,month,day)
result_eleven_half_time = datetime.datetime.strptime(eleven_half_time, "%Y-%m-%d %H:%M:%S")
# 当天的13点时间转换成日期格式
thirteen_time = "%s-%s-%s 13:00:00" %(year,month,day)
result_thirteen_time = datetime.datetime.strptime(thirteen_time, "%Y-%m-%d %H:%M:%S")
# 当天的15点时间转换成日期格式
fifteen_time = "%s-%s-%s 15:00:00" %(year,month,day)
result_fifteen_time = datetime.datetime.strptime(fifteen_time, "%Y-%m-%d %H:%M:%S")
# print(result_thirteen_time <result_now_time<result_fifteen_time)
self.check(result_now_time,result_eleven_half_time,result_thirteen_time,result_fifteen_time)
# 处理check
def check(self,result_now_time,result_eleven_half_time,result_thirteen_time,result_fifteen_time):
while True:
# 如果现在时间小于11点半或者在13点和15点之间运行
if result_now_time < result_eleven_half_time or result_thirteen_time <result_now_time<result_fifteen_time:
print("======================")
for url in self.url_list:
response = requests.get(url,headers=self.headers)
html = response.text
# 名称
name = html.split('"')[1].split(",")[0]
# 价格
price = float(html.split('"')[1].split(",")[1])
print(name,price)
self.speaker.Speak(name) # 播报名字
self.speaker.Speak(price) # 播报价格
else:
break
if __name__ == "__main__":
ch = Check()
ch.nowtime()