python微信聊天机器人改进版(定时或触发抓取天气预报、励志语录等,向好友推送)

时间:2021-05-22

最近想着做一个微信机器人,主要想要实现能够每天定时推送天气预报或励志语录,励志语录要每天有自动更新,定时或当有好友回复时,能够随机推送不同的内容。于是开始了分析思路。博主是采用了多线程群发,因为微信对频繁发送消息过快还会出现发送失败的问题,因此还要加入time.sleep(1),当然时间根据自身情况自己定咯。本想把接入写诗机器人,想想自己的渣电脑于是便放弃了,感兴趣的可以尝试一下。做完会有不少收获希望对你有帮助。

  (1)我们要找个每天定时更新天气预报的网站,和一个更新励志语录的网站。当然如果你想更新其他内容,相信高智商的你这些都是小意思啦。博主是随便找了2个网站进行抓取。

  第一步:抓取某网站天气预报信息,为我所用,因温度气候和生活指数在两个页面,于是将2个页面的数据抓取并进行整合:

  这里抓取第一个页面内容,为温度,风向,日期,随便把第二天天气的也一并抓取了:

def get_content(self, html_str): html = etree.HTML(html_str) weather_ts = html.xpath("//div[@id='7d']/ul") today_w = '' tomorrow_w = '' for weather_t in weather_ts: today_w += weather_t.xpath("./li[1]/h1/text()")[0] + ' ' today_w += weather_t.xpath("./li[1]/p[1]/text()")[0] + ' ' today_w += weather_t.xpath("./li[1]/p[2]/i/text()")[0] + ' ' today_w += '风向' + weather_t.xpath("./li[1]/p[3]/i/text()")[0] tomorrow_w += weather_t.xpath("./li[2]/h1/text()")[0] + ' ' tomorrow_w += weather_t.xpath("./li[2]/p[1]/text()")[0] + ' ' tomorrow_w += '风向' + weather_t.xpath("./li[2]/p[3]/i/text()")[0] all_w = today_w + '--' + tomorrow_w     return all_w

  这里抓取第二页面内容,包括穿衣指数,紫外线指数:

def get_content1(self, html_str): html = etree.HTML(html_str) living_ins =html.xpath("//div[@class='livezs']/ul") today_living = '' for living_in in living_ins: today_living += living_in.xpath("./li[1]/span/text()")[0] today_living += living_in.xpath("./li[1]/em/text()")[0] + ':' today_living += living_in.xpath("./li[1]/p/text()")[0] + ' ' today_living += living_in.xpath("./li[2]/a/em/text()")[0] + ' ' today_living += living_in.xpath("./li[2]/a/p/text()")[0] + ' ' today_living += living_in.xpath("./li[3]/em/text()")[0] + ':' today_living += living_in.xpath("./li[3]/p/text()")[0] + ' ' today_living += living_in.xpath("./li[4]/a/em/text()")[0] + ' ' today_living += living_in.xpath("./li[4]/a/p/text()")[0] + ' ' today_living += living_in.xpath("./li[6]/em/text()")[0] + ':' today_living += living_in.xpath("./li[6]/p/text()")[0] return today_living

  第二步:抓取某网经典唯美励志语录,为了每次发送或者回复都有信息感,博主抓取了10个数据,并进行随机返回:

def Soul(): url = 'http:///openapi/api" api_key = "a3c47b29c497e87ab0b6e566f32" # 这里我已经修改,需要自己申请一个咯 payload = { "key": api_key, "info": text, } rec = requests.post(url, data=json.dumps(payload)) result = json.loads(rec.content) # print(result["text"]) if result["text"] == "亲爱的,当天请求次数已用完。": return "主人不在所以我智商为0了,尝试下回复(唯美)随机获取励志唯美语句" return result["text"]

  好了,所有工作完成,看看效果,记得屏蔽了公众号,不然会有下面效果:

总结

以上所述是小编给大家介绍的python微信聊天机器人改进版(定时或触发抓取天气预报、励志语录等,向好友推送),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章