python采集微信电脑端聊天信息(利用Python实现微信找房机器人实例教程)
类别:脚本大全 浏览量:232
时间:2021-11-08 16:21:53 python采集微信电脑端聊天信息
利用Python实现微信找房机器人实例教程目的
两年前曾为了租房做过一个找房机器人 「爬取豆瓣租房并定时推送到微信」,维护一段时间后就荒废了。
当时因为代码比较简单一直没开源,现在想想说不定开源后也能帮助一些同学更好的找到租房信息,所以简单整理后,开源到 github,地址: https://github.com/facert/zufang
下面是当时写的简单原理介绍:
身在帝都的人都知道租房的困难,每次找房都是心力交瘁。其中豆瓣租房小组算是比较靠谱的房源了,但是由于小组信息繁杂,而且没有搜索的功能,想要实时获取租房信息是件很困难的事情,所以最近给自己挖了个坑,做个微信找房机器人,先看大概效果吧,见下图:
实现
说下大概的技术实现吧,首先是 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 |
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对开心学习网的支持。
原文链接:https://zhuanlan.zhihu.com/p/58791190
您可能感兴趣
- python 读文件报错处理(解决python写入带有中文的字符到文件错误的问题)
- python中return 类的实例(Python实现Event回调机制的方法)
- python的opencv图片识别(OpenCV-Python 摄像头实时检测人脸代码实例)
- python提取json数据(Python爬取数据保存为Json格式的代码示例)
- python3.7不兼容pywinauto(浅谈python编译pyc工程--导包问题解决)
- python数据分析用到的模块(python模块之subprocess模块级方法的使用)
- docker下运行python3(使用Docker+jenkins+python3环境搭建超详细教程)
- python用列表实现一个定时器(python 定时器,实现每天凌晨3点执行的方法)
- python使用什么函数定义匿名函数(Python匿名函数及应用示例)
- pythonnumpy定义一个2*2数组(对python numpy.array插入一行或一列的方法详解)
- python编写告白程序(python抖音表白程序源代码)
- python使用aes加密解密(python实现AES加密与解密)
- python如何安装requests模块(Python常用模块之requests模块用法分析)
- python怎么给rsa加密(Python生成rsa密钥对操作示例)
- python装饰器怎么编写(Python函数装饰器常见使用方法实例详解)
- python爬取豆瓣电影评论(python使用requests模块实现爬取电影天堂最新电影信息)
- 纳兰性德绝美作,一场重逢,成就最后一首称得上惊艳的《如梦令》(纳兰性德绝美作)
- 如何快速赚钱(如何快速赚钱方法真实有效)
- 这里输入关键词(如何输入关键词)
- 熊猫中国国宝(熊猫国宝酒53酱香)
- 春节会放假几天(春节会放假吗)
- 小浴室,大民生 缙云3200多户困难群众洗上免费热水澡(小浴室大民生缙云3200多户困难群众洗上免费热水澡)
热门推荐
- css进度条怎么设置(使用CSS实现阅读进度条)
- dede织梦怎么在文章下面添加图片(dedecms织梦模板用array调用多个自定义字段并判断的方法)
- SQL Server中如何将数据导出为XML或Json文件
- python列表怎么赋值(详解Python列表赋值复制深拷贝及5种浅拷贝)
- phpstudymysql启动又自动停止(Win下解决phpStudy MySQL启动失败)
- linux系统安装宝塔面板启动失败(Linux云主机安装宝塔面板新手教程)
- h5打开小程序点允许(html5跳转小程序wx-open-launch-weapp踩坑)
- submit与button的区别
- web服务器的配置教程(Web服务器硬件配置改如何选择?)
- ASP.NET身份验证方式
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9