微信文章自动采集软件( 文件夹生成rootCA.crt证书与对应的密钥.js )
优采云 发布时间: 2021-10-24 23:05微信文章自动采集软件(
文件夹生成rootCA.crt证书与对应的密钥.js
)
anyproxy --root
此时文件夹中会生成rootCA.crt证书和对应的key rootCA.key,根据提示打开对应文件夹,双击安装rootCA.crt证书。
手机安装
在电脑命令行或终端输入anyproxy命令启动代理程序,然后在浏览器中输入网址:8002/qr_root,就会出现证书二维码。然后手机扫描证书二维码,下载并按照提示完成安装。
参考 URL 1:%E7%9B%B8%E5%85%B3%E6%95%99%E7%A8%8B
参考 URL 2:#Configuration 帮助
安装mysql模块部分
默认情况下,您的计算机上已经安装了 mysql 数据库。现在那个节点连接到mysql数据库,还需要安装一个程序包来实现:
npm install -g mysql
节目地址
windows程序AnyProxy的默认安装目录为:C:\Users\您的用户名\AppData\Roaming\npm\node_modules\anyproxy
Mac安装目录为:/usr/local/lib/node_modules/anyproxy
本程序是对AnyProxy中lib文件中相应的代码部分进行修改和增加。
我的代码部分
下面我发给你5个文件,你只需要覆盖lib目录下的对应文件即可。(建议先备份)
./anyproxy
./lib
myRule.js
rule_default.js
1.png
requestHandler.js
httpsServerMgr.js
运行程序部分
anyproxy -i
在终端输入以上命令运行。参数 -i 表示开启 HTTPS。
可以操作myRule.js文件,选择对应的功能。修改文件后,需要重启程序。
运行后,确保电脑和手机在同一个WiFi环境下,然后按照提示设置手机WiFi的代理,输入代理URL和端口(终端会提示连接地址运行后)。
然后选择查看公众号文章自动抓取数据入库。
myRule.js 代码的主要部分
三个主要功能:
getProfile - 对历史页的操作,获取文章其他数据;插入自动翻页代码
getReadAndLikeNum - 获取文章点赞、阅读、打赏等数据
insertJsForRefresh - 对文章页的操作,主要是插入自动翻页代码
代码原则
这个程序是事件驱动的。就是说开头一定要给出触发事件,比如打开历史详情页或者打开某篇文章文章。
微信打开历史详情页后会触发一个事件。运行getProfile函数跳转到下一个历史详情页面,然后触发历史详情页面的打开。
同理,在微信打开文章页面会触发一个事件运行insertJsForRefresh函数。此功能将在网页中插入脚本以自动翻页。当翻页时,会再次触发该事件,并继续运行。同时,在打开文章页面时,微信会请求另外一个链接,然后会自动触发getReadAndLikeNum函数。
历史详情页插入js代码有4种方式,代码中已注释。
js注入详解
文章 自动翻页的原理是在网页的头部插入类似如下形式的代码,表示每5秒跳转到下一个文章页面。
将 Js 脚本示例注入历史详情页面。在微信客户端返回的数据中插入如下脚本,使网页自动下拉到最低端,然后跳转到最早的文章之后的下一个历史消息详情页:
var end = document.createElement("p");
document.body.appendChild(end);
(function scrollDown(){
// 下拉至页面最低端后,微信会自动向服务器请求数据
end.scrollIntoView();
var loadMore = document.getElementsByClassName("loadmore with_line")[0];
// 判断是否到达最早一篇文章
if (!loadMore.style.display) {
document.body.scrollIntoView();
// 插入meta,使10秒后自动翻页
var meta = document.createElement("meta");
meta.httpEquiv = "refresh";meta.content = "10;url=' + nextProLink + '";
document.head.appendChild(meta);
} else {
// 每个随机时间段下拉网页
setTimeout(scrollDown,Math.floor(Math.random()*2000+1000));
}
})();
我在代码部分写了4个类似的脚本来实现不同情况下的特定功能。您可以在运行时做出选择。
数据库部分
myRule.js 文件的开头会有一个数据库连接,应该相应地修改为你自己的数据库配置。
// 创建数据库连接,需根据自己数据库账号密码修改
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '0000',
database: 'phone_weixin'
});
数据库中有4张表,分别对应文章信息、历史新闻抓取记录、公众号信息。
msg
history
mpaccout
content
表的结构也在您的文件中。只需在 mysql 数据库中创建一个新的。
数据库字段说明
msg.sql
id - 文章id,自动递增
msg_title - 文章标题
msg_link - 文章永久链接
publish_time - 文章发布时间,13位时间戳形式
modi_time - 数据抓取时间,13位时间戳形式
read_num - 阅读量
like_num - 点赞量
reward_total_count - 安卓手机赞赏量
msg_idx - 文章发布位置,首条、二条等等
msg_biz - 公众号唯一标识,重要
msg_source_url - 文章阅读原文链接,若无则空
msg_cover - 文章封面图片链接
msg_digest - 文章摘要
is_fail - 文章是否删除,如果删除改为1,下次就不在抓取
copyright_stat - 文章是否原创标识 11为原创 100为无原创 101为转发
author - 文章作者
mpaccount.sql
id - 公众号id,自动递增
biz - 公众号唯一标识
nickname - 公众号名称
metavalue - 公众号id
history.sql
id - 公众号id,自动递增
biz - 公众号唯一标识
url - 上次抓取的链接
moditime - 上次抓取时间