querylist采集微信公众号文章(知乎专题微信公众号内容的批量采集与应用,延续这份分享精神 )

优采云 发布时间: 2021-09-03 07:29

  querylist采集微信公众号文章(知乎专题微信公众号内容的批量采集与应用,延续这份分享精神

)

  :///

  参考知乎thematic微信公众号采集批号及申请,作者:饭口团队负责人

  原作者(方口团队负责人)有句话:我的方法来自于很多同事的分享精神,所以我会延续这种精神,分享我的成果。

  这个系列的文章也是为了延续这种分享精神!

  这个文章系列是基于知乎话题教程的一步步实现过程,在实现过程中踩到了一些坑。

  原理介绍这里不再赘述,可以参考知乎topic。

  代码改进前的准备

  原作者使用的是php环境。如果有能力,可以尝试其他语言来实现,比如python、java等,不过原作者已经给出了部分php代码,这里也实现了。

  所以你要准备一个php环境。 win下推荐使用优采云集成环境,如wamp、xamp、phpstudy等,因为之前电脑里就有wamp环境,可以直接使用。先配置虚拟域名。但是下面的代码需要改成自己对应的路径。配置虚拟域名的教程可以参考我的另一篇文章php本地虚拟域名配置和端口的一些折腾。这里假设我配置的虚拟域名是

  修改 rule_default.js 代码

  下面仅给出了一些示例。其他人做同样的修改(如果没有配置虚拟域名,需要将域名改为路径访问,如localhost/weixin/,直接修改即可):

  1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

  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",

port: 80,

path: path,//接收程序的路径和文件名

headers: {

'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',

"Content-Length": content.length

}

};

  找到要修改的函数replaceRequestOption:

  1

2

3

4

5

6

7

8

  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语句。修改了一些语法错误和关键字重复

  1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

  微信公众号表

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人工客服


线