python定时发信息给女友
- 第一步,也是最难的一部
- 首先得要有个女朋友

- 利用python的第三方库wxpy来登录微信,实现消息发送功能
from wxpy import * def login():
bot = Bot(cache_path=True)
my_lover = bot.friends().search('夏叶')[0]
return my_loversearch方法接收一个昵称的字符串,它会返回一个查找到的所有条件的列表对象,我们这里只有这一个人,直接选第一个对象
- 去天气网爬取网页数据,将关于天气的信息筛选下来,整合成消息字符串
import requests
from lxml import etree def get_page(url):
r = requests.get(url)
r.encoding = r.apparent_encoding
return r.text if r.status_code == 200 else None def parse_page(html):
html = etree.HTML(html)
forecasts = html.xpath('/html/body/div[8]/div[1]/div[1]/div[2]/ul/li/a[1]/@title')
forecasts = '\n'.join(forecasts)
keys = html.xpath('/html/body/div[8]/div[2]/div[6]/ul/li/b/text()')
values = html.xpath('/html/body/div[8]/div[2]/div[6]/ul/li/a/p/text()')
day_info = {i: values[keys.index(i)] for i in keys}
message = '青哥哥今日提醒:\n\n' + '南京今日生活指数:\n' + '\n'.join(
['{}: {}'.format(i, day_info[i]) for i in day_info]) + '\n' * 3 + '南京主要地区天气预报:\n' + forecasts
return message爬虫库使用的是requests,解析库用的是xpath,最后将字符串拼接,返回消息对象
- 获取当前时间和设置闹钟
from datetime import datetime def get_time():
time = datetime.now().strftime('%H:%M:%S')
return time clock = '06:00:0{}' # 设置启动时间
interval = 3 # 设置时间间隔
time_zone = [clock.format(i) for i in range(interval)]防止电脑性能过差或cpu使用率过高导致的时间漏缺,设置一下时间间隔,我这里设置的是三秒,最后将设置时间区间
- 主函数发送消息
def main(my_lover):
url = 'http://www.tianqi.com/nanjing/'
html = get_page(url)
message = parse_page(html)
my_lover.send(message)不同城市的url可以去天气网自定义,一般网页的结构是不会变得
- 判断时间,最后的完整代码
from time import sleep
from datetime import datetime
from wxpy import *
import requests
from lxml import etree def login():
bot = Bot(cache_path=True)
my_lover = bot.friends().search('夏叶')[0]
return my_lover def get_page(url):
r = requests.get(url)
r.encoding = r.apparent_encoding
return r.text if r.status_code == 200 else None def parse_page(html):
html = etree.HTML(html)
forecasts = html.xpath('/html/body/div[8]/div[1]/div[1]/div[2]/ul/li/a[1]/@title')
forecasts = '\n'.join(forecasts)
keys = html.xpath('/html/body/div[8]/div[2]/div[6]/ul/li/b/text()')
values = html.xpath('/html/body/div[8]/div[2]/div[6]/ul/li/a/p/text()')
day_info = {i: values[keys.index(i)] for i in keys}
message = '青哥哥今日提醒:\n\n' + '南京今日生活指数:\n' + '\n'.join(
['{}: {}'.format(i, day_info[i]) for i in day_info]) + '\n' * 3 + '南京主要地区天气预报:\n' + forecasts
return message def get_time():
time = datetime.now().strftime('%H:%M:%S')
return time clock = '06:00:0{}' # 设置启动时间
interval = 3 # 设置时间间隔
time_zone = [clock.format(i) for i in range(interval)] def main(my_lover):
url = 'http://www.tianqi.com/nanjing/'
html = get_page(url)
message = parse_page(html)
my_lover.send(message) if __name__ == '__main__':
my_lover = login()
print('waiting......')
while True:
time = get_time()
if time in time_zone:
main(my_lover)
print(time)
sleep(interval)
sleep(1) # 程序休眠一秒,减少cpu的压力
python定时发信息给女友的更多相关文章
- 利用python itchat给女朋友定时发信息
利用itchat给女朋友定时发信息 涉及到的技术有itchat,redis,mysql,最主要的还是mysql咯,当然咯,这么多东西,我就只介绍我代码需要用到的,其他的,如果需要了解的话,就需要看参考 ...
- Python定时框架 Apscheduler 详解【转】
内容来自网络: https://www.cnblogs.com/luxiaojun/p/6567132.html 在平常的工作中几乎有一半的功能模块都需要定时任务来推动,例如项目中有一个定时统计程序, ...
- 用python定时文章发布wordpress
用python定时文章发布wordpress: 流程: 采集 - 筛选文章 - wordpress文章发布. wordpress文章发布代码:python利用模块xmlrpclib发布文章非常便捷,省 ...
- 新发现:AirDroid(用Web端控制自己的手机发信息)
http://web.airdroid.com/ 好多功能呀,有空研究研究 http://jingyan.baidu.com/article/b24f6c82cd4ade86bfe5daf3.html ...
- python定时利用QQ邮件发送天气预报
大致介绍 好久没有写博客了,正好今天有时间把前几天写的利用python定时发送QQ邮件记录一下 1.首先利用request库去请求数据,天气预报使用的是和风天气的API(www.heweather.c ...
- netty04(重点来了、指定某个客户端发信息或者群发)小声嘀咕~~我也是从零开始学得、、、想学习netty的又不知道怎么下手的童鞋们~~
还是和上几篇一样,先给出前面笔记的连接,有没看的可以去看看再来! netty01 . netty02 .netty03 看到这里.你基本上可以使用netty接受信息和根据对应的信息返回信息了 接 ...
- (转)openfire插件开发(三)通过http方式向openfire客户端发信息
转:http://blog.csdn.net/hzaccp3/article/details/19964655 需求: 通过http方式,向openfire客户端发信息(非XMPP协议)openfi ...
- 网络编程(client发信息给server)
client发信息给server
- 用python获取ip信息
1.138网站 http://user.ip138.com/ip/首次注册后赠送1000次请求,API接口请求格式如下,必须要有token值 import httplib2 from urllib.p ...
随机推荐
- 20175312 2018-2019-2 《Java程序设计》第4周学习总结
20175312 2018-2019-2 <Java程序设计>第4周学习总结 教材学习内容总结 已依照蓝墨云班课的要求完成了第五章的学习,主要的学习渠道是PPT,和书的课后习题. 总结如下 ...
- 通过Python计算一个文件夹大小
在进行计算一个文件夹内容大小的时候,我们要考虑文件夹内都有什么内容,可能都是一个一个的单文件,也有可能都是子文件夹,或者二者都有,既然要计算整个文件夹的大小,我们当然要计算每一个文件的大小以及每一个子 ...
- Hadoop之简单文件读写
文件简单写操作: import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataOutputStream ...
- 1_bytes和str
数据运算全跳过,语言都一样,格式差异 bytes/str的区别 Python3不会以任意隐式的方式混用bytes和str,不能拼接字符串和字节包也无法在字节包里搜索字符串(反之亦然) 二进 ...
- loadrunner中面向目标场景的设计
在一个面向目标的方案中,可以定义五种类型的目标:虚拟用户数.每秒点击次数(仅 Web Vuser).每秒事务数.每分钟页面数(仅 Web Vuser)或方案的事务响应时间.使用“编辑方案目标”对话框可 ...
- SAP发布REST/HTTP接口
1.SE24新建类:ZCL_REST_QUERY 激活,然后添加interface:IF_HTTP_EXTENSION并激活. 2.实现IF_HTTP_EXTENSION~HANDLE_REQUEST ...
- java九九乘法表
public class Nine { public static void main(String[] args) { //外层循环控制行数 for (int i = 9;i >=1;i--) ...
- 为Linux技术学习推荐看的书籍—《Linux就该这么学》
成长,是一种经历:经历,是一种人生的体验.人生的意义不在于我们拥有了什么,而在于从中我们体悟了什么.在这短短的三年,却在我的人生中弥足珍贵,在脑海中记忆犹新,在这大学三年里,我从一个莽撞少年成长为一名 ...
- Python *Mix_w7
1. str中的join方法. 把列表转换成字符串 g = ["中国", "美国", "韩国", "法国"] s = & ...
- mysql一些常用配置
清空表: truncate table 表名 让id重1开始 alter table `test` auto_increment=1