python 微信机器人源码_利用Python实现微信找房机器人实例教程

目的

两年前曾为了租房做过一个找房机器人 「爬取豆瓣租房并定时推送到微信」,维护一段时间后就荒废了。

当时因为代码比较简单一直没开源,现在想想说不定开源后也能帮助一些同学更好的找到租房信息,所以简单整理后,开源到 github,地址:https://github.com/facert/zufang (本地下载)

下面是当时写的简单原理介绍:

身在帝都的人都知道租房的困难,每次找房都是心力交瘁。其中豆瓣租房小组算是比较靠谱的房源了,但是由于小组信息繁杂,而且没有搜索的功能,想要实时获取租房信息是件很困难的事情,所以最近给自己挖了个坑,做个微信找房机器人,先看大概效果吧,见下图:

6e6e1ba0d9e0c9e399702050a23ea63c.png

a1f139e867acce921d8d843eb2c4ad92.png

实现

说下大概的技术实现吧,首先是 scrapy 爬虫对于豆瓣北京租房的小组实时爬取,并做了全文检索,对 title, description 使用 jieba 和 whoosh 进行了分词和索引,做成 api。接下来就是应用的接入,网上有微信机器人的开源 [wxBot](http://github.com/liuwons/wxBo),所以对它进行了修改, 实现了定时推送和持久化。最后顺便把公众号也做了同样的功能,支持实时租房信息搜索。

部分代码

scrapy 支持自定义 pipeline,能很方便的实现数据录入的时候实时生成索引,见 code:

class IndexPipeline(object):

def __init__(self, index):

self.index = index

@classmethod

def from_crawler(cls, crawler):

return cls(

index=crawler.settings.get('WHOOSH_INDEX', 'indexes')

)

def process_item(self, item, spider):

self.writer = AsyncWriter(get_index(self.index, zufang_schema))

create_time = datetime.datetime.strptime(item['create_time'], "%Y-%m-%d %H:%M:%S")

self.writer.update_document(

url=item['url'].decode('utf-8'),

title=item['title'],

description=item['description'],

create_time=create_time

)

self.writer.commit()

return item

搜索 api 代码很简单:

def zufang_query(keywords, limit=100):

ix = get_index('indexes', zufang_schema)

content = ["title", "description"]

query = MultifieldParser(content, ix.schema).parse(keywords)

result_list = []

with ix.searcher() as searcher:

results = searcher.search(query, sortedby="create_time", reverse=True, limit=limit)

for i in results:

result_list.append({'url': i['url'], 'title': i['title'], 'create_time': i['create_time']})

return result_list

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。

您可能感兴趣的文章:详解用python自制微信机器人,定时发送天气预报

教你用Python创建微信聊天机器人

python使用itchat库实现微信机器人(好友聊天、群聊天)

快速实现基于Python的微信聊天机器人示例代码

python基于itchat实现微信群消息同步机器人

python实现向微信用户发送每日一句 python实现微信聊天机器人

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值