Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit f009066

Browse files
committed
实时新闻推送
1 parent 5928fb6 commit f009066

File tree

5 files changed

+140
-110
lines changed

5 files changed

+140
-110
lines changed

企业微信/config.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ AGENTID = 1000002
2424
TOUSER = @all
2525

2626
#程序休眠时间
27-
sleep = 1
27+
sleep = 300
2828

2929
;程序运行时间在白天8:55 到 11:30 下午1:30 到 3:01
3030
DAY_START = 8,55

企业微信/sm.py

Lines changed: 0 additions & 108 deletions
This file was deleted.

企业微信/spider.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# @Time : 2020/3/23 11:20
2+
# @Author : Libuda
3+
# @FileName: spider.py
4+
# @Software: PyCharm
5+
import requests
6+
import time
7+
8+
base_url = "https://newsapi.eastmoney.com/kuaixun/v1/getlist_106_ajaxResult_50_1_.html?&_={}"
9+
10+
11+
def spider():
12+
try:
13+
url = base_url.format(int(time.time() * 1000))
14+
response = requests.get(url).text
15+
totle_res = eval(response.replace("var ajaxResult=", ""))
16+
lis_res = totle_res['LivesList']
17+
res = lis_res[0]['digest']
18+
return (len(lis_res), res)
19+
except Exception as e:
20+
return (0, None)
21+
22+
23+
def main():
24+
lenght, res = spider()
25+
if lenght != 0:
26+
return res
27+
28+
29+
if __name__ == '__main__':
30+
31+
l, res = spider()
32+
print("{}:{}".format(time.ctime(), res))
33+
# time.sleep(600)
34+
35+
while 1:
36+
new_l, new_res = spider()
37+
if res != new_res:
38+
print("{}:{}".format(time.ctime(), new_res))
39+
res = new_res
40+
else:
41+
print("{},新闻:{}".format(time.ctime(), l))
42+
time.sleep(300)

企业微信/实时推送新闻.py

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
#!/usr/bin/env python
2+
# -*- coding: utf-8 -*-
3+
4+
import time
5+
import requests
6+
import json
7+
from datetime import datetime
8+
from 企业微信.邮件接收程序 import logger
9+
from 企业微信.config import get_config
10+
from 企业微信.spider import spider
11+
12+
config = get_config()
13+
14+
15+
class WeChat:
16+
def __init__(self):
17+
self.CORPID = config['CORPID']
18+
self.CORPSECRET = config['CORPSECRET']
19+
self.AGENTID = config['AGENTID']
20+
self.TOUSER = config['TOUSER']
21+
22+
def _get_access_token(self):
23+
url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken'
24+
values = {'corpid': self.CORPID,
25+
'corpsecret': self.CORPSECRET,
26+
}
27+
req = requests.post(url, params=values)
28+
data = json.loads(req.text)
29+
return data["access_token"]
30+
31+
def get_access_token(self):
32+
try:
33+
with open('access_token.conf', 'r') as f:
34+
t, access_token = f.read().split()
35+
except:
36+
with open('access_token.conf', 'w') as f:
37+
access_token = self._get_access_token()
38+
cur_time = time.time()
39+
f.write('\t'.join([str(cur_time), access_token]))
40+
return access_token
41+
else:
42+
cur_time = time.time()
43+
if 0 < cur_time - float(t) < 7200:
44+
return access_token
45+
else:
46+
with open('access_token.conf', 'w') as f:
47+
access_token = self._get_access_token()
48+
f.write('\t'.join([str(cur_time), access_token]))
49+
return access_token
50+
51+
def send_data(self, message):
52+
send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + self.get_access_token()
53+
send_values = {
54+
"touser": self.TOUSER,
55+
"msgtype": "text",
56+
"agentid": self.AGENTID,
57+
"text": {
58+
"content": message
59+
},
60+
"safe": "0"
61+
}
62+
send_msges = (bytes(json.dumps(send_values), 'utf-8'))
63+
respone = requests.post(send_url, send_msges)
64+
respone = respone.json() # 当返回的数据是json串的时候直接用.json即可将respone转换成字典
65+
return respone["errmsg"]
66+
67+
68+
if __name__ == '__main__':
69+
wx = WeChat()
70+
71+
# 接收内容
72+
l, res = spider()
73+
# while 1:
74+
# new_l, new_res = spider()
75+
# if res!=new_res:
76+
# print("{}:{}".format(time.ctime(), new_res))
77+
# res = new_res
78+
# else:
79+
# print("{},新闻:{}".format(time.ctime(),l))
80+
# time.sleep(300)
81+
82+
while 1:
83+
current_time = datetime.now().time()
84+
85+
# logger("检测新闻中")
86+
try:
87+
new_l, new_res = spider()
88+
if new_res and res != new_res:
89+
logger("{}".format(new_res))
90+
res = new_res
91+
wx.send_data(new_res)
92+
else:
93+
logger("{},新闻:{}".format(time.ctime(), l))
94+
time.sleep(int(config['sleep']))
95+
except Exception as e:
96+
print("运行错误", e)

企业微信/邮件接收程序.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# @Time : 2020/2/28 13:30
22
# @Author : Libuda
3-
# @FileName: main.py
3+
# @FileName: 远程服务器文件监控.py
44
# @Software: PyCharm
55
# -*- coding: utf-8 -*-
66

0 commit comments

Comments
 (0)