周末在宿舍学习python,女朋友那突然下了倾盆大雨,在图书馆门口跟我抱怨好久。最近又在学习python,就想给女朋友写个小程序,每天早上将每天的天气预报通过微信发个她。
在本程序中,用到了几个重要的模块,操作微信的wxpy模块,直接打开网页内容的urlopen,以及搜索html文件的Beautifulsoup。在文件开始加上# -*- coding:utf-8 -*-是因为python文件中是不支持中文的,通过开始这个代码可以让文件编码类型改为UTF-8以支持中文。
# -*- coding:utf-8 -*-
import datetime
import time
import wxpy
from urllib.request import urlopen
from bs4 import BeautifulSoup
通过urlopen模块从想要获取信息的网站获取信息,接着用BeautifulSoup模块解析HTML。再跟据相应的方法取得想要的tag。
#打开中国天气网的绍兴7天天气
resp=urlopen('http://www.weather.com.cn/weather/101210501.shtml')
soup=BeautifulSoup(resp,'html.parser') #weather作为明天天气变量
TomorrowWeather=soup.find_all('p',class_="wea")[1].string
TodayWeather=soup.find_all('p',class_="wea")[0].string #今天高低温度
TodayTemperatureHigh=soup.find_all('p',class_="tem")[0].span.string
TodayTemperatureLow=soup.find_all('p',class_="tem")[0].i.string #明天高低温度
TomorrowTemperatureHigh=soup.find_all('p',class_="tem")[1].span.string
TomorrowTemperatureLow=soup.find_all('p',class_="tem")[1].i.string
接着用类似的方法从“ONE”上获取每日一句。
"""获取每日一句的内容"""
resp=urlopen('http://www.wufazhuce.com/')
soup=BeautifulSoup(resp,'html.parser') text=soup.find_all('a')[2].string
最后通过模块datetime获取时间,并设定好时间发送这些消息。
'''get time now'''
nowtime=datetime.datetime.now()
'''send message at time'''
if nowtime.hour==7 and nowtime.minute==0:
print('send weather forecast')
weather=get_weather()
girlfriend=bot.search('Blueberry')[0]
girlfriend.send(weather)
if TodayWeather.find('雨')!=-1 :
girlfriend.send('出门记得带好伞哦~')
time.sleep(60)
if nowtime.hour==22 and nowtime.minute==0:
print('send news')
dailysentence=news.get_news()
girlfriend=bot.search('Blueberry')[0]
girlfriend.send(dailysentence)
girlfriend.send('--每日一句')
time.sleep(60)
以上就是全部的代码了。这是我学习了python后第一次自己编写的一个完整的代码,很简单。就当练练手,以后如果工作有自动化测试的需要,再尝试写点其他的。
学以致用。