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
您可能感兴趣
- pythonmatplotlib散点图怎么画(python使用matplotlib画柱状图、散点图)
- pythonrequest包设置编码(解决python3中的requests解析中文页面出现乱码问题)
- python 正则表达式在代码里的使用(python中正则表达式与模式匹配)
- 如何用python画函数图(使用python绘制二元函数图像的实例)
- python numpy矩阵详解(基于Numpy.convolve使用Python实现滑动平均滤波的思路详解)
- python删除数据框重复变量(Python3删除排序数组中重复项的方法分析)
- pythonturtle库画图代码(用Python中的turtle模块画图两只小羊方法)
- python爬虫出租屋(python爬虫租房信息在地图上显示的方法)
- python定时推送邮件(python实现定时压缩指定文件夹发送邮件)
- python json转换字符串(python3 json数据格式的转换dumps/loads的使用、dict to str/str to dict、json字符串/字典)
- python入门练习网页(详解python项目实战:模拟登陆CSDN)
- python编写一个聊天机器人(不到20行代码用Python做一个智能聊天机器人)
- python3标准库资源(Python3标准库总结)
- python 串口图形化(python使用MQTT给硬件传输图片的实现方法)
- python实现螺旋矩阵(Python3实现的旋转矩阵图像算法示例)
- python数据类型基本知识入门(Python Pexpect库的简单使用方法)
- ()
- ()
- 800壮士拼死拖住30万日军 八佰 的真实历史,誓与阵地共存亡(800壮士拼死拖住30万日军)
- 演员陈创,火于 哮天犬 ,颠峰于 福贵 ,现状却令人唏嘘(演员陈创火于哮天犬)
- 幼小衔接-20以内看图读数 写数 数的组成练习题(幼小衔接-20以内看图读数)
- 你只要花上20天记单词,英语成绩就能从57提到100(你只要花上20天记单词)
热门推荐
- sql join速度慢(SQL Server 使用join all优化 or 查询速度)
- mysql存储引擎的创建与修改(关于MySQL Memory存储引擎的相关知识)
- python钉钉机器人(python钉钉机器人运维脚本监控实例)
- dedecms使用方法(Dedecms织梦CMS搜索页面调用全站最新文章的方法)
- 如何查看python beautifulsoup(Python爬虫beautifulsoup4常用的解析方法总结)
- vue3.0怎么往标签填数据(Vue3.0写自定义指令的简单步骤记录)
- 学python从零基础到开发游戏(python开发游戏的前期准备)
- https服务器怎么打开(网站服务器配置是选HTTP还是HTTPS?)
- 怎么将mysql彻底卸载(如何把Mysql卸载干净亲测有效)
- 属于web服务器的有哪些(web服务器有几种类型?)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9