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
您可能感兴趣
- pythonsql注入检测(Python版Mssql爆破小脚本)
- python线程自动停止了(解决Python中定时任务线程无法自动退出的问题)
- python变量指向讲解(详解python中init方法和随机数方法)
- python opencv图像合并(Python3+OpenCV2实现图像的几何变换平移、镜像、缩放、旋转、仿射)
- python协程结果(深入浅析python 协程与go协程的区别)
- pythondjango工作机制(Python后台开发Django会话控制的实现)
- python网页自动化selenium(python利用selenium进行浏览器爬虫)
- python读取文件的方法和区别(浅谈PYTHON 关于文件的操作)
- python云服务技术(Python脚本修改阿里云的访问控制列表的方法)
- python变量与对象的关系(Python面向对象程序设计类变量与成员变量、类方法与成员方法用法分析)
- python钉钉机器人(python钉钉机器人运维脚本监控实例)
- python3字符串格式化怎么操作(python3实现字符串操作的实例代码)
- python pandas读取数据库表(Python3.5 Pandas模块之DataFrame用法实例分析)
- Python实现模拟点击(用python实现刷点击率的示例代码)
- python指定路径创建txt文件(python根据txt文本批量创建文件夹)
- python数据类型基本知识入门(Python Pexpect库的简单使用方法)
- 中国留学生都是富二代吗()
- 我们现在吃的苹果是哪里来的 原来现代苹果引入中国仅有一百多年(我们现在吃的苹果是哪里来的)
- 买绿宝不能只挑黄绿色 菜农教你3招挑,个个皮薄肉脆,香甜爆汁(买绿宝不能只挑黄绿色)
- 大果肉搭配薄瓜皮, 绿宝 脆甜爽口,不愧是甜瓜中的 佼佼者(大果肉搭配薄瓜皮)
- 河南尉氏县因地制宜发展果蔬种植 水坡镇绿宝甜瓜变 金瓜(河南尉氏县因地制宜发展果蔬种植)
- 谢广坤,你这么欺负谢腾飞,良心不会痛吗(你这么欺负谢腾飞)
热门推荐
- 云服务器的五大特征(云服务器可以分为哪些类别?)
- 浅谈Python3中strip()、lstrip()、rstrip()用法详解(浅谈Python3中strip、lstrip、rstrip用法详解)
- react怎么绑定state(react纯函数组件setState更新页面不刷新的解决)
- php框架使用方法大全(PHP MVC框架中类的自动加载机制实例分析)
- set statistics time on的理解
- mysql日常运维(MySQL从库维护经验分享)
- css3基础入门(详解使用CSS3的@media来编写响应式的页面)
- js基础入门到高级教程(浅谈如何循序渐进的学好JS)
- JS闭包的用法
- 安装laravel框架(laravel框架的安装与路由实例分析)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9