查看: 266|回复: 0

[PHP学习] 微信公众号文章采集系统---开箱即用

发表于 7 天前

本着开源精神和方便用户,现已将"微信公众号文章采集系统"打包成虚拟机,你只需下载安装虚拟机镜像,即可使用。

系统镜像有6个G,只能通过种子的形式下载了, 镜像种子下载地址

链接: https://pan.baidu.com/s/1kV2zh91 密码: ugcn

首先要感谢飯口組組長 把他的采集方案开源出来 。

这里能够称之为系统是因为涉及到的技术很多,这里一一罗列:

1、anyproxy 阿里巴巴开源的代理拦截器,使用的是4.0的版本,可以很方便的修改 response 信息。anyproxy 我在系统中已经安装好了,安装也很简单,先安装nodejs环境,然后用npm安装anyproxy.

anyproxy 4.0开始规则可以作为模块来开发,写好了规则代码之后,不用动原来的代码,只需要在anproxy的参数带上规则文件。这里用到的命令 anproxy --rule weixin.js。 关于anproxy如何设置https 证书问题,可以参考官网。我在虚拟机中设置了全局的代理,所以需要 anyproxy 打开后才能,8001端口可以访问请求才能成功。

规则代码主要的逻辑是对于微信公众号的请求进行拦截,把数据转发到 php。

2、apache+php+mysql 这里主要是作为web服务器来处理anyproxy 拦截的请求,处理微信文章数据和点赞数、阅读数。

拦截过来的数据的处理可以看具体的php代码,逻辑不算太复杂。这里为了方便使用的是phpstudy的集成开发环境。

3、按键精灵,按键精灵是国产的一种类似vb语法的模拟键盘鼠标的工具。这里用到按键精灵来模拟点击windows下的微信客户端。

在处理多个微信公众号的时候,需要客户端来点击,把所有的手动操作通过按键精灵来模拟出来。去查看具体的代码的时候,我在处理点击历史消息使用了一个小技巧,事实是开始想通过直接通过识别图片的办法来找到 “历史消息” 按钮的位置,但是发现怎么也找不到,然后只能 循环向下移动鼠标,直到区域内找到特定的颜色,就是“历史消息”按钮。

在一条思路行不通的时候,就要尝试其他思路。整个系统就是做下来,就是要处理这种看似行得通,实际不通,然后再去尝试,如此反复。

4、windows 微信客户端,其实我尝试过用安卓模拟器,因为我的目标是开箱即用,所以需要把所有的程序都能够装到一起,但是在虚拟机中是没法安装安卓模拟器,也就是说虚拟机中是没法做二次虚拟的。这个坑我已经踩过了,大家就不用踩了,记得之前有人问过,阿里云windows服务器能不能装 安卓模拟器,我想答案是一样的,虚拟机不能做二次虚拟化,阿里云windows服务器不能装安卓模拟器。

所以,当我尝试安卓模拟器后,发现原来微信pc客户端(包括mac)的功能已经做的很完善了,然后就去尝试windows客户端。

5、virtualbox 虚拟机,这个是甲骨文公司出的虚拟机。会涉及到一些网络的配置,比如设置为NAT模式。

现在把虚拟机镜像开源出来,里面所有的代码都在虚拟机中,大家可以随意修改。

从最开始知道公众号文章采集到知道实现原理,再到最后做出镜像,中间经历过各种困难,耗时耗力,请教各种人,甚至吃饭睡觉都在想某个细节的解决方案,有解决问题的快乐,有被问题缠绕时的苦恼,感谢这个过程中给予过帮助人。

在安装使用过程中遇到什么问题可以加我微信 ( liuhan199012 )



回复

使用道具 举报