we-extract解析和采集微信公众号文章的账号及内容必备工具

时间:2022-07-27
本文章向大家介绍we-extract解析和采集微信公众号文章的账号及内容必备工具,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

介绍

we-extract 用以解析微信公众号文章的账号及文章信息,居家旅行、采集微信公众号文章必备工具。

we-extract微信公众号 RSS 订阅服务 WeRss 的核心工具,欢迎使用:

安装

npm install we-extract

// or

yarn add we-extract

使用

Node 版本需要支持 async

const extract = require('we-extract').extract

const rs = await extract('微信文章 url 或者 文章内容')

// 选项
const rs = await extract('微信文章 url 或者 文章内容', {
  shouldReturnRawMeta: false, // 是否返回原始的 js 解析结果,一般只用于调试,默认不返回
  shouldReturnContent: true // 是否返回内容,默认返回
})

返回结果说明

正确返回

{
done: true,
code: 0,
data: {
account_name: '微信派',
account_alias: 'wx-pai',
account_avatar: 'http://wx.qlogo.cn/mmhead/Q3auHgzwzM7Xb5Qbdia5AuGTX4AeZSWYlv5TEqD1FicUDOrnEIwVak1A/132',
account_description: '微信第一手官方活动信息发布,线下沙龙活动在线互动平台。独家分享微信公众平台优秀案例,以及权威专家的精彩观点。',
account_id: 'gh_bc5ec2ee663f',
account_biz: 'MjM5NjM4MDAxMg==',
account_biz_number: 2396380012,
account_qr_code: 'https://open.weixin.qq.com/qr/code?username=gh_bc5ec2ee663f',
msg_has_copyright: false, // 是否原创
msg_content: '省略的文章内容',
msg_author: null, // 作者
msg_sn: '9a0a54f2e7c8ac4019812aa78bd4b3e0',
msg_idx: 1,
msg_mid: 2655078412,
msg_title: '重磅 | 微信订阅号全新改版上线!',
msg_desc: '今后,头图也很重要',
msg_link: 'http://mp.weixin.qq.com/s?__biz=MjM5NjM4MDAxMg==&mid=2655078412&idx=1&sn=9a0a54f2e7c8ac4019812aa78bd4b3e0&chksm=bd5fc40f8a284d19360e956074ffced37d8e2d78cb01a4ecdfaae40247823e7056b9d31ae3ef#rd',
msg_source_url: null, // 音频,视频时,此处为音频、视频链接
msg_cover: 'http://mmbiz.qpic.cn/mmbiz_jpg/OiaFLUqewuIDldpxsV3ZYJzzyH9HTFsSwOEPX82WEvBZozGiam3LbRSzpIIKGzj72nxjhLjnscWsibDPFmnpFZykg/0?wx_fmt=jpeg',
msg_article_type: null, // 文章分类
msg_publish_time: '2018-06-20T10:52:35.000Z', // date 类型
msg_publish_time_str: '2018/06/20 18:52:35',
msg_type: 'post' // 可能为 post repost voice video image
}
}

错误返回

{
done: false,
code: 2002,
msg: '链接已过期'
}

常见错误

we-extract 定义了详细的错误信息方便开发和出错处理,1 开头错误表示可能需要重试(或者暂时将内容保存下来 debug),2 表示没有疑问的错误,可以不处理。

'1000': '解析失败,可能文章内容不完整',
'1001': '字段缺失',
'1002': '请求文章内容失败',
'1003': '请求文章内容为空',
'1004': '访问过于频繁',
'1005': 'js 变量解析出错',
'2001': '参数缺失',
'2002': '链接已过期',
'2003': '该内容被投诉且经审核涉嫌侵权,无法查看',
'2004': '公众号迁移但文章未同步',
'2005': '该内容已被发布者删除',
'2006': '此内容因违规无法查看',
'2007': '涉嫌违反相关法律法规和政策发送失败',
'2008': '微信文章系统出错',
'2009': '链接不正确'

经验

  • 一个微信由 biz+mid+idx 组成,mid 在单个公众号内唯一。
  • 文章所属账号信息以文章解析结果为准,采集搜狗时不要相信账号名字,因为搜狗显示的可能是改名或者迁移前的账号信息。
  • 如果在搜狗微信搜不到账号,极有可能是因为公众号改了名字,试试以前的名字应该能搜索到。
  • 微信链接的 search 拼接符可能为 ?需要做一个替换处理,否则解析链接参数时会有问题。
  • 一个 ip 获取微信文章内容有限制,需要限制速率或者轮换 ip。

更多的经验采坑会持续更新到 Github 项目页面。

https://github.com/airyland/we-extract