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 操作html(Python HTML解析模块HTMLParser用法分析爬虫工具)
- python字符处理的函数(Python字符串内置函数功能与用法总结)
- Python实现模拟点击(用python实现刷点击率的示例代码)
- python try高级用法(python try 异常处理史上最全)
- python列出文件夹下所有文件(python批量修改文件夹及其子文件夹下的文件内容)
- python虚拟环境的使用方法(详解python配置虚拟环境)
- python多线程实现(python多线程并发让两个LED同时亮的方法)
- python绘折线图数据(python2.7使用plotly绘制本地散点图和折线图)
- python入门练习网页(详解python项目实战:模拟登陆CSDN)
- python获取当前时间戳(Python基于datetime或time模块分别获取当前时间戳的方法实例)
- python中的迭代器详解(Python通过for循环理解迭代器和生成器实例详解)
- pythonjson库(Python常用的json标准库)
- python scrapy 框架原理(一步步教你用python的scrapy编写一个爬虫)
- python发送微信消息脚本(python实现给微信指定好友定时发送消息)
- python的多线程比多进程效率高(Python中单线程、多线程和多进程的效率对比实验实例)
- 如何用python在微信里自动回复(Python实现微信自动好友验证,自动回复,发送群聊链接方法)
- 数读 买首饰金是 投资黄金 吗 买金容易卖金难(数读买首饰金是)
- 销 售 买 卖 你真的了解这四个字了吗(销售买)
- 谢娜是得罪快乐大本营造型师了吗 全场被黑化(谢娜是得罪快乐大本营造型师了吗)
- 前《iLOOK》时装总监 《快乐大本营》御用造型师上线(快乐大本营御用造型师上线)
- 释小龙晒杀青照片 多重身份惹观众期待(释小龙晒杀青照片)
- 《九牛之人降魔传》开机 演员祁高坤化身九牛之人除魔卫道(九牛之人降魔传开机)
热门推荐
- python数字形式转换详解(Python3.5实现的罗马数字转换成整数功能示例)
- sqlserver小结(基于sqlserver的四种分页方式总结)
- nginx反向代理怎样实现(Nginx反向代理配置的全过程记录)
- sqlserver实现登录注册(Sqlserver创建用户并授权的实现步骤)
- sqlserver判断条件输出字符(SQL Server查询条件IN中能否使用变量的示例详解)
- python3有哪些内置模块(Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析)
- sqlserver连接字符串函数(SQL SERVER 2012新增函数之字符串函数FORMAT详解)
- dedecms权限调整(增加dedecms后台留言管理功能)
- djangoapi接口开发(Django使用AJAX调用自己写的API接口的方法)
- docker 默认内存(docker 运行指定内存的操作)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9