关键词文章采集源码(参考自知乎专题微信公众号内容的批量采集与应用)

优采云 发布时间: 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生成数据表。

  

  图片

  待续……待续……

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线