我是靠谱客的博主 热心外套,最近开发中收集的这篇文章主要介绍python自动聊天机器人_用python实现的一个自动聊天的机器人,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

因为之前想过 如果每天早上微信能够发送天气预报给我,给我老婆多好,然后就动手看网上的教程做了一个可以定时发送天气预报的程序,

最近又想到折腾,做了一个更加详细的版本。但是需要主动操作

具体操作看图。

1240

1240

1240

部分代码:

#coding=utf8

import requests

from requests import exceptions

from urllib.request import urlopen

from bs4 import BeautifulSoup

from urllib.parse import urlencode

from threading import Timer

import re

from wxpy import *

import schedule

import time

import http

import json

import datetime

import random

bot = Bot(cache_path=True,console_qr = 1)

myself = bot.self

bot.enable_puid('wxpy_puid.pkl')

tuling = Tuling(api_key='换成自己的图片key')

group = bot.groups().search(u'Test')

shgroup = bot.groups().search('伐木累????')

friends = bot.friends().search(u'Lie')

msgText = "Helo! 回复'功能'获取对应功能n1.天气(例:苏州天气)n2.今日nba(注:今日所有比赛结果)n3.今日黄历n4.每日一句n5.开启机器人(关闭机器人)n6.今日古诗词n7.每日阅读n8.历史上的今天n9.nba排名(注:当日东西部排名)n10.新闻n 1.头条新闻n 2.社会新闻n 3.娱乐新闻n 4.体育新闻n11.星座运势(例如:天秤座)" #任意回复获取的菜单

newText = "你可以这样回复: n1.头条新闻n2.社会新闻n3.娱乐新闻n4.体育新闻"

def get_now_weather(city):

header = {

'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',

'Accept-Encoding': 'gzip, deflate',

'Accept-Language': 'zh-CN,zh;q=0.8',

'Connection': 'keep-alive',

'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.235'

}

url = 'https://free-api.heweather.com/s6/weather/now?location='+city+'&key=换成自己的聚合数据key'

PMurl = 'https://free-api.heweather.com/s6/air/now?parameters&location='+city+'&key=换成自己的和风key'

# 设定超时时间,防止被网站认为是爬虫

timeout = random.choice(range(80, 180))

rep = requests.get(url, headers=header, timeout=timeout)

pm = requests.get(PMurl, headers=header, timeout=timeout)

result = ''

temp = rep.json()

temp = temp['HeWeather6'][0]

update = temp['update']

now = temp['now']

nowTime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')

pm = pm.json()

pm = pm['HeWeather6'][0]

print(now)

airnow = pm['air_now_city']

result = city + '实时天气预报-' + 'n'

+ '更新时间:'+ update['loc'] + 'n'

+ ' 当前天气:'+ now['cond_txt'] + 'n'

+ ' 当前温度:'+ now['tmp'] + '°C' + 'n'

+ ' 体感温度:'+ now['fl'] + '°C' + 'n'

+ ' 风向:'+ now['wind_dir'] + ' ' + now['wind_sc'] + '级 '+ now['wind_spd'] + '公里/小时'+ 'n'

+ ' 相对湿度:'+ now['hum'] + '%' + 'n'

+ ' 降水量:'+ now['pcpn'] + 'ml' + 'n'

+ ' 能见度:'+ now['vis'] + '公里' + 'n'

+ ' 云量:'+ now['cloud'] + 'n'

+ '-----------------------------------' + 'n'

+ '当前空气质量:'+'n'

+ ' 空气质量指数:'+ airnow['aqi']+'n'

+ ' 主要污染物:'+ airnow['main']+'n'

+ ' 空气质量:'+ airnow['qlty']+'n'

+ ' 二氧化氮指数:'+ airnow['no2']+'n'

+ ' 二氧化硫指数:'+ airnow['so2']+'n'

+ ' 一氧化碳指数:'+ airnow['co']+'n'

+ ' pm10指数:'+ airnow['pm10']+'n'

+ ' pm25指数:'+ airnow['pm25']+'n'

+ ' 臭氧指数:'+ airnow['o3']+'n'

result = result + '发送时间:' + nowTime + 'n'

return result

def get_news(type):

header = {

'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',

'Accept-Encoding': 'gzip, deflate',

'Accept-Language': 'zh-CN,zh;q=0.8',

'Connection': 'keep-alive',

'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.235'

}

url = 'http://v.juhe.cn/toutiao/index?type='+str(type)+'&key=换成自己的聚合数据key'

timeout = random.choice(range(80, 180))

rep = requests.get(url, headers=header, timeout=timeout)

data = json.loads(rep.text)

data = data['result']

data = data['data']

item = []

obj = {}

html = '今日'+str(type)+'新闻:'+ 'n'

for i in data:

html = html + '标题:' + i['title'] + 'n'

+ '链接:' + i['url'] + 'n'

+ '分类:' + i['category'] + 'n'

+ '来自:' + i['author_name'] + 'n'

+ '时间:' + i['date'] + 'n'

+ '-----------------------------------------------' + 'n' +'n'

return html

def get_star(name):

header = {

'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',

'Accept-Encoding': 'gzip, deflate',

'Accept-Language': 'zh-CN,zh;q=0.8',

'Connection': 'keep-alive',

'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.235'

}

url = 'http://web.juhe.cn:8080/constellation/getAll?consName='+str(name)+'&type=today&key=换成自己的聚合数据key'

timeout = random.choice(range(80, 180))

rep = requests.get(url, headers=header, timeout=timeout)

data = json.loads(rep.text)

starhtml = '今日'+str(name)+'运势:'+ 'n'

+ ' 综合指数:' + data['all'] + 'n'

+ ' 幸运色:' + data['color'] + 'n'

+ ' 健康指数:' + data['health'] + 'n'

+ ' 爱情指数:' + data['love'] + 'n'

+ ' 财运指数:' + data['money'] + 'n'

+ ' 速配星座:' + data['QFriend'] + 'n'

+ ' 工作指数:' + data['work'] + 'n'

+ ' 今日概述:' + data['summary'] + 'n'

return starhtml

def get_nba():

resp = urlopen('https://m.hupu.com/nba/game')

soup = BeautifulSoup(resp,'html.parser')

tagToday = soup.find('section',class_="match-today")

nbaHtml = '今日NBA比赛结果:' + 'n' + 'n'

for tag in tagToday.find_all('a', class_='match-wrap'):

nbaHtml = nbaHtml + tag.find('div', class_='away-team').span.get_text() + ' ' + tag.find('strong', class_='').span.get_text() + ' ' + tag.find('div', class_='home-team').span.get_text() + ' (' + tag.find('div', class_='match-status-txt').get_text() +')' + 'n'

return nbaHtml

def get_rank():

resp = urlopen('https://m.hupu.com/nba/stats')

soup = BeautifulSoup(resp,'html.parser')

east = soup.find_all('li',class_= "weast")[0]

west = soup.find_all('li',class_= "weast")[1]

rankHtml = '今日NBA东部排名:(1.排名 2.球队 3.胜负 4.胜负差 5.最近情况)' + 'n' + 'n'

for tag in east.find_all('li', class_=''):

list = tag.find('p', class_='right-data')

rankHtml = rankHtml + tag.find('span', class_='rank').get_text() + '. ' + tag.find('div', class_='').h1.get_text() + ' ' + list.find_all('span')[0].get_text() + ' ' + list.find_all('span')[1].get_text() +' '+ list.find_all('span')[2].get_text() +'n'

rankHtml = rankHtml + 'n' + 'n' + '---------------------------------------------' + 'n' + 'n'

rankHtml = rankHtml + '今日NBA西部排名:(1.排名 2.球队 3.胜负 4.胜负差 5.最近情况)' + 'n' + 'n'

for tag in west.find_all('li', class_=''):

list = tag.find('p', class_='right-data')

rankHtml = rankHtml + tag.find('span', class_='rank').get_text() + '. ' + tag.find('div', class_='').h1.get_text() + ' ' + list.find_all('span')[0].get_text() + ' ' + list.find_all('span')[1].get_text() +' '+ list.find_all('span')[2].get_text() +'n'

return rankHtml

def invite(user):

print('4')

group = bot.groups().search('cc')

group[0].add_members(user, use_invitation=True)

@bot.register(msg_types=FRIENDS)

@bot.register(group)

@bot.register(shgroup,TEXT)

@bot.register(friends)

喜欢的可以加微信 wex_5201314 验证信息【 py】 拉你进群体验 获取关注公众号 【故事胶片】 获取源码

或者直接扫描二维码

1240

最后

以上就是热心外套为你收集整理的python自动聊天机器人_用python实现的一个自动聊天的机器人的全部内容,希望文章能够帮你解决python自动聊天机器人_用python实现的一个自动聊天的机器人所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部