querylist采集微信公眾號文章(知乎專(zhuān)題微信公眾號內容的批量采集與應用,延續這份分享精神 )
優(yōu)采云 發(fā)布時(shí)間: 2021-09-03 07:29querylist采集微信公眾號文章(知乎專(zhuān)題微信公眾號內容的批量采集與應用,延續這份分享精神
)
:///
參考知乎thematic微信公眾號采集批號及申請,作者:飯口團隊負責人
原作者(方口團隊負責人)有句話(huà):我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。
這個(gè)系列的文章也是為了延續這種分享精神!
這個(gè)文章系列是基于知乎話(huà)題教程的一步步實(shí)現過(guò)程,在實(shí)現過(guò)程中踩到了一些坑。
原理介紹這里不再贅述,可以參考知乎topic。
代碼改進(jìn)前的準備
原作者使用的是php環(huán)境。如果有能力,可以嘗試其他語(yǔ)言來(lái)實(shí)現,比如python、java等,不過(guò)原作者已經(jīng)給出了部分php代碼,這里也實(shí)現了。
所以你要準備一個(gè)php環(huán)境。 win下推薦使用優(yōu)采云集成環(huán)境,如wamp、xamp、phpstudy等,因為之前電腦里就有wamp環(huán)境,可以直接使用。先配置虛擬域名。但是下面的代碼需要改成自己對應的路徑。配置虛擬域名的教程可以參考我的另一篇文章php本地虛擬域名配置和端口的一些折騰。這里假設我配置的虛擬域名是
修改 rule_default.js 代碼
下面僅給出了一些示例。其他人做同樣的修改(如果沒(méi)有配置虛擬域名,需要將域名改為路徑訪(fǎng)問(wèn),如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;
},
創(chuàng )建數據庫和數據表
在完善php代碼之前,我們還需要先創(chuàng )建數據庫和數據表。好消息是組長(cháng)已經(jīng)給出了數據表的創(chuàng )建sql語(yǔ)句。修改了一些語(yǔ)法錯誤和關(guān)鍵字重復
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 '記錄采集時(shí)間的時(shí)間戳',
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 '微信定義的一個(gè)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 '文章時(shí)間戳',
`readNum` int(11) NOT NULL DEFAULT 1 COMMENT '文章閱讀量',
`likeNum` int(11) NOT NULL DEFAULT 0 COMMENT '文章點(diǎn)贊量',
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后臺,語(yǔ)言可設置為中文。
注意排序規則設置為utf8_general_ci。
一一執行sql生成數據表。
待續......待續......
希望這個(gè)文章能給你帶來(lái)知識和樂(lè )趣。喜歡博主文章可以加博主好友
如果你有好的文章,也可以給博主投稿。