本帖最后由 suifeng199106 于 2019-7-10 18:46 编辑
前段时间在这样一个网站www.idiancai.com,看到了新闻自动推送功能,自己研究了一段时间,现在跟大家分享交流
复制代码
from wxpy import * #该库主要是用来模拟与对接网站操作的
import requests
from datetime import datetime
import time
import schedule
from apscheduler.schedulers.blocking import BlockingScheduler #定时框架
复制代码
首先引入所需要的库,如果不存在,请先使用pip进行安装
1
pip install schedule
接下来进行网站登录
bot = Bot(cache_path=True)
cache_path = True表示开启缓存,这样在缓存生效的时间内可以避免每次启动程序都进行网站登录了
然后我们写一个变量,用来存在图灵机器人的key,后面会用到(去图灵申请一个免费的机器人即可)
tuling = Tuling(api_key="图灵机器人的key")
接下来就是主要内容了,在这里我们将对网站好友发送天气提醒,所以先创建一个函数,用来维护接收该消息的好友名单发送名单有了,我们该准备发送的内容了:
复制代码
def Weather(location): # 定义一个发送天气的函数,并需要接收一个参数(该参数是好友在网站中设置的地点)
#准备url地址
path ='http://www.smpeizi.com/telematics/v3/weather?location=%s&output=json&ak=TueGDhCvwI6fOrQnLM0qmXxY9N0OkOiQ&callback=?'
url = path % location
response = requests.get(url) # 对该地址和参数进行get请求
result = response.json() # 将返回的结果转成json串
# 为了防止因好友未设置地点而导致程序报错,所以需要对返回的error参数进行判断
if int(result['error']) != 0: # 当error为0时,搜索是正常的,一旦不等于0,表示存在错误
location = '北京' # 此时将地址设为一个默认地址 如北京
url = path % location # 拼接新的url
response = requests.get(url) # 在对新的url进行get请求
result = response.json()
# 下面就是对正确请求到数据后的结果进行处理了
# 问候语
greetings = (' 早上好!这是今天的天气预报!……\n机器人:你的小野猫\n')
try: # 此处增加异常处理是因为当好友设置的地区为国外的时候,error返回值不会报错,但不会有results
# 取出天气结果
results = result['results']
except:
return "啊哦,我迷路了,找不到地点!" # 当没有该地区的结果时,函数直接返回字符串,此时函数结束
# 当正常取出结果后,继续进行下列操作
故此,结束了
|
|