博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python爬虫-播报天气信息(生成exe文件)待续
阅读量:5164 次
发布时间:2019-06-13

本文共 2930 字,大约阅读时间需要 9 分钟。

#!/usr/bin/env python3# -*- coding : utf-8 -*- ''' 1、从https://my.oschina.net/joanfen/blog/140364获取要播报城市code 2、采集中国天气网:http://www.weather.com.cn/weather/101120201.shtml 3、将采集到的文字百度语音合成为mp3文件,http://yuyin.baidu.com
''' import timefrom bs4 import BeautifulSoupimport requestsimport pymysqlfrom aip import AipSpeechimport osapp_id = '*****'api_key = '******'secret_key = '*******'header = {        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',        'Accept-Encoding': 'gzip, deflate, br',        'Accept-Language': 'zh-CN,zh;q=0.8',        'Connection': 'keep-alive',        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 '                      '(KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'    }def get_url(city_code='101120201'):    url = 'http://www.weather.com.cn/weather/%s.shtml' % city_code    return urldef get_data(url='http://www.weather.com.cn/weather/101120201.shtml', name='青岛'):    html = requests.get(url)    html.encoding = 'utf-8'    bs = BeautifulSoup(html.text, 'lxml')    data = bs.find("div", {
'id': '7d'}) ul = data.find('ul') li = ul.find_all('li') i = 0 for day in li: weather = [] date = day.find('h1').string wea = day.find_all('p') title = wea[0].string if wea[1].find('span') is None: temperature_high = None else: temperature_high = wea[1].find('span').string temperature_lower = wea[1].find("i").string win = wea[2].find('span')['title'] win_lv = wea[2].find('i').string weather.append(date) weather.append(title) weather.append(temperature_high) weather.append(temperature_lower) weather.append(win) weather.append(win_lv) #print(weather) if i == 0: year = time.strftime('%Y',time.localtime(time.time())) month = time.strftime('%m', time.localtime(time.time())) day = time.strftime('%d', time.localtime(time.time())) text = year+'年'+month+'月'+day+'日 %s天气预报,白天%s,最高温度%s,最低温度%s,%s,%s' % (name, title, temperature_high, temperature_lower, win, win_lv) i += 1 return textdef run(): city_name = '青岛' city_code = 101120201 weather_url = get_url(city_code) #print('%s最近七日天气情况如下:' % city_name) text = get_data(weather_url, city_name) aipSpeech = AipSpeech(app_id, api_key, secret_key) result = aipSpeech.synthesis(text, 'zh', 1, { 'vol': 5,'per' : 0 }) if not isinstance(result, dict): targetDir = 'D:\\python\\test\\spider\\static' if not os.path.isdir(targetDir): os.mkdir(targetDir) with open(targetDir+'\\weather_%s.mp3' % city_name, 'wb') as f: f.write(result) os.system(targetDir+'\\weather_%s.mp3' % city_name) return city_nameif __name__ == '__main__': city = run()

 

转载于:https://www.cnblogs.com/liuzhongchao/p/8360662.html

你可能感兴趣的文章
如何黑一个黑客
查看>>
笔记18 | MediaRecorder录音
查看>>
Team Dipper
查看>>
软件需求与分析需掌握的内容
查看>>
构造函数初始化列表
查看>>
jQuery获取自身HTML
查看>>
(转)RedHat/CentOS安装和配置kerberos
查看>>
File类常见方法:
查看>>
Revolving Digits(hdu 4333)
查看>>
在 Azure 中的 Linux 虚拟机上使用 SSL 证书保护 Web 服务器
查看>>
安卓 自定义吐司样式
查看>>
自定义动画
查看>>
准备些一篇目前技术目前公司 使用技术的 解析
查看>>
Sturct类型装箱时会遇到的问题
查看>>
mybatis 在自动生成时设置不生成Example类
查看>>
如何将红色区域数据调用解密函数直接打印到输出控制台(例如:crt控制台)...
查看>>
React-AR概述
查看>>
踏上Salesforce的学习之路(一)
查看>>
json中拿到想拿的值
查看>>
ios开发抽屉效果的封装使用
查看>>