关键词文章采集源码(参考自知乎专题微信公众号内容的批量采集与应用)
优采云 发布时间: 2021-12-20 07:07关键词文章采集源码(参考自知乎专题微信公众号内容的批量采集与应用)
参考知乎专题微信公众号内容的批量采集和申请,作者:范口组长
原作者(饭口组组长)有句话:我的方法来自于很多同事的分享精神,所以我会延续这种精神,分享我的成果。
这一系列文章也是为了延续这种分享精神!
本系列文章是根据知乎主题教程一步步实现的,在实现过程中踩到了一些坑。
原理介绍这里不再赘述,可以参考知乎专题。
代码改进前的准备
原作者使用php环境。如果有能力,可以尝试其他语言,比如python、java等,不过原作者已经给出了部分php代码,这里也实现了。
所以准备好php环境。建议使用win下的wamp、xamp、phpstudy等集成环境,因为之前电脑里就有wamp环境,所以直接用了。如果不匹配,请先配置虚拟域名。但是下面的代码需要改成自己对应的路径。配置虚拟域名的教程可以参考我的另一篇文章php本地虚拟域名配置和端口的一些折腾。这里假设我配置的虚拟域名是
修改 rule_default.js 代码
下面仅给出一些示例。其他人做同样的修改(如果没有配置虚拟域名,则需要将域名改为路径访问,如localhost/weixin/,修改即可):
HttpPost(ret[1],req.url,"/getMsgJson.php");
var http = require('http');
http.get('http://hojun.weixin.com/getWxHis.php', function(res) {
res.on('data', function(chunk){
callback(chunk+serverResData);
})
});
------------------
var options = {
method: "POST",
host: "hojun.weixin.com",//注意没有http://,这是服务器的域名。
port: 80,
path: path,//接收程序的路径和文件名
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
"Content-Length": content.length
}
};
找到要修改的函数replaceRequestOption:
replaceRequestOption : function(req,option){
var newOption = option;
if(/google/i.test(newOption.headers.host)){
newOption.hostname = "www.baidu.com";
newOption.port = "80";
}
return newOption;
},
创建数据库和数据表
在完善php代码之前,我们还需要先创建数据库和数据表。好消息是组长已经给出了数据表的创建sql语句。修改了一些语法错误和重复关键词
微信公众号表
CREATE TABLE `weixin` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`biz` varchar(255) DEFAULT ' ' COMMENT '公众号唯一标识biz',
`collect` int(11) DEFAULT 1 COMMENT '记录采集时间的时间戳',
PRIMARY KEY (`id`)
) ;
微信文章表
CREATE TABLE `post` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`biz` varchar(255) CHARACTER SET utf8 NOT NULL COMMENT '文章对应的公众号biz',
`field_id` int(11) NOT NULL COMMENT '微信定义的一个id,每条文章唯一',
`title` varchar(255) NOT NULL DEFAULT ' ' COMMENT '文章标题',
`title_encode` text CHARACTER SET utf8 NOT NULL COMMENT '文章编码,防止文章出现emoji',
`digest` varchar(500) NOT NULL DEFAULT ' ' COMMENT '文章摘要',
`content_url` varchar(500) CHARACTER SET utf8 NOT NULL COMMENT '文章地址',
`source_url` varchar(500) CHARACTER SET utf8 NOT NULL COMMENT '阅读原文地址',
`cover` varchar(500) CHARACTER SET utf8 NOT NULL COMMENT '封面图片',
`is_multi` int(11) NOT NULL COMMENT '是否多图文',
`is_top` int(11) NOT NULL COMMENT '是否头条',
`datetime` int(11) NOT NULL COMMENT '文章时间戳',
`readNum` int(11) NOT NULL DEFAULT 1 COMMENT '文章阅读量',
`likeNum` int(11) NOT NULL DEFAULT 0 COMMENT '文章点赞量',
PRIMARY KEY (`id`)
) ;
采集队列表
CREATE TABLE `tmplist` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`content_url` varchar(255) DEFAULT NULL COMMENT '文章地址',
`load` int(11) DEFAULT 0 COMMENT '读取中标记',
PRIMARY KEY (`id`),
UNIQUE KEY `content_url` (`content_url`)
) ;
登录phpMyAdmin后台,语言可以设置为中文。
图片
请注意,排序规则设置为 utf8_general_ci。
图片
然后一一执行sql生成数据表。
图片
待续……待续……