黑马程序员技术交流社区

标题: 利用python对网站自动进行消息推送 [打印本页]

作者: suifeng199106    时间: 2019-7-10 18:36
标题: 利用python对网站自动进行消息推送
本帖最后由 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 "啊哦,我迷路了,找不到地点!" # 当没有该地区的结果时,函数直接返回字符串,此时函数结束
  # 当正常取出结果后,继续进行下列操作
故此,结束了





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2