Git Product home page Git Product logo

everydaywechat's Introduction

源工程传送门:

Github: https://github.com/sfyc23/EverydayWechat

本版本添加了图灵/aikf机器人自动聊天功能, 使用需在_config.yaml修改如下配置


# 问答机器人渠道
# 1 :图灵
# 2 :aikf
robot_channel: 2

# 图灵机器人设置
api_key: ''
user_id: ''

图灵机器人需官网申请,目前免费版100条/天,aikf暂无限制

快速启动

1. 修改_config.yaml
2. python run.py 或 nohup ./start.sh &(linux后台服务)

待优化功能

  • 消息防撤回
  • 群聊功能
  • 语音支持

灵感来源&后记

实现一个陪女友聊天机器人的想法出自于好玩与实际需求,但是从0快速搭建这样一套系统还 是一件非常有挑战的事情,好在github上看到了sfyc23的给多个女友发送微信暖心话 工程(为什么是多个 ⊙ˍ⊙),于是快速fork了项目并且对接了机器人接口,将聊天记录发 送到脉脉后意外收到千赞,并且被电商报,差评等媒体在微博,公号渠道转发,这让我甚是 不安,因为我只是在他人程序基础上做了些微小的改动而已,好在现在看到sfyc23也实现了 聊天机器人的功能,并且有更规范的代码与完善的文档,需要聊天机器人的同学可以fork 用 Python + itchat 写一个爬虫脚本每天定时给多个女友发给微信暖心话 本项目主要作为个人练手,不再提供稳定更新。

运行效果

用 Python + itchat 写一个爬虫脚本每天定时给多个女友发给微信暖心话

项目介绍:

灵感来源

在掘金看到了一篇《用Node+wechaty写一个爬虫脚本每天定时给女(男)朋友发微信暖心话》后,我就想为什么不用 Python 去实现这个功能呢。 JUST DO IT,说做就做。
这文章的结构也是参考上面这位朋友的。
本来只是写单人的,不过有些优(作)秀(死)的人表示女朋友不止一个。现已支持添加多人信息。

项目地址:

Github: https://github.com/sfyc23/EverydayWechat

使用库

功能

定时给女朋友发送每日天气、提醒、每日一句。

数据来源

实现效果

命令行信息
微信截图

代码说明

目录结构

  • city_dict.py :城市对应编码字典
  • config.yaml :设置定时时间,女友微信名称等参数
  • GFWeather.py:核心代码
  • requirements.txt:需要安装的库
  • run.py:项目运行类

核心代码

1.定时任务。

每天 9:30 给女朋友们开始给女朋友发送内容。

# 定时任务
scheduler = BlockingScheduler()
# 每天9:30给女朋友发送每日一句
# scheduler.add_job(start_today_info, 'cron', hour=9, minute=30)
scheduler.start()

start_today_info 是方法处理类。

2.获取每日一句。

数据来源 1: ONE●一个

def get_dictum_info(self):
    '''
    获取格言信息(从『一个。one』获取信息 http://wufazhuce.com/)
    :return: str 一句格言或者短语
    '''
    print('获取格言信息..')
    user_url = 'http://wufazhuce.com/'
    resp = requests.get(user_url, headers=self.headers)
    soup_texts = BeautifulSoup(resp.text, 'lxml')
    # 『one -个』 中的每日一句
    every_msg = soup_texts.find_all('div', class_='fp-one-cita')[0].find('a').text
    return every_msg

数据来源 2: 金山词霸 ● 每日一句

有英文和中文翻译,例如:

When you finally get your own happiness, you will understand the previous sadness is a kind of treasure, which makes you better to hold and cherish the people you love. 等你获得真正属于你的幸福之后,你就会明白一起的伤痛其实是一种财富,它让你学会更好地去把握和珍惜你爱的人。

代码实现 :

 def get_ciba_info(self):
    '''
    从词霸中获取每日一句,带英文。
    :return:
    '''
    resp = requests.get('http://open.iciba.com/dsapi')
    if resp.status_code == 200 and self.isJson(resp):
        conentJson = resp.json()
        content = conentJson.get('content')
        note = conentJson.get('note')
        # print(f"{content}\n{note}")
        return f"{content}\n{note}\n"
    else:
        print("没有获取到数据")
        return None

3. 获取今日天气 。

天气数据来源:SOJSON

def get_weather_info(self, city_code=''):
    weather_url = f'http://t.weather.sojson.com/api/weather/city/{city_code}'
    resp = requests.get(url=weather_url)
    if resp.status_code == 200 and resp.json().get('status') == 200:
        weatherJson = resp.json()
        # 今日天气
        today_weather = weatherJson.get('data').get('forecast')[1]

city_code 城市对应 id。 http://cdn.sojson.com/_city.json

4. 登录微信并发送内容。

itchat.auto_login()
itchat.send(today_msg, toUserName=name_uuid)

项目运行

安装依赖

使用 pip install -r requirements.txt 安装所有依赖

参数配置

config.yaml

# 定时时间
alarm_timed: '9:30'

# 格言渠道
# 1 : ONE●一个
# 2 : 词霸(每日英语)
dictum_channel: 2

girlfriend_infos:
  -
    #女友微信昵称
    wechat_name: '古典'
    #女友所在桂林
    city_name: '桂林'
    # 从那天开始勾搭的(可空)
    start_date: '2017-11-11'
    # 短句的最后留言(可空)
    sweet_words: '来自最爱你的我。'

  #如果有你多个人需要发送,则参照这个样式,复制即可
  -
    wechat_name: '陈老师'
    city_name: '朝阳区'
    start_date: '2018-11-11'
    sweet_words: '来自你俊美的老公。'

开始运行

python run.py

最后

项目地址:https://github.com/sfyc23/EverydayWechat
写完后才发现,我并没有女朋友啊!

everydaywechat's People

Contributors

onlytre avatar sfyc23 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.