最近我有一个需求,需要在自己的网站上展示公众号文章,但是不想手动复制粘贴每篇文章的内容。于是我就开始了解如何通过代码实现网页调取公众号文章的功能。经过一番探索和尝试,我终于成功实现了这个功能,并在这里分享给大家。
1.公众号文章概述
(资料图片)
首先我们需要了解一下公众号文章的基本信息。每篇公众号文章都有一个唯一的URL链接,以及对应的标题、作者、发布时间等基本信息。我们可以通过这些信息来获取文章内容。
2.获取公众号文章链接
在获取公众号文章链接之前,我们需要先获取到对应公众号的AppId和AppSecret。这两个参数可以在微信公众平台上申请获得。获取到这两个参数之后,我们就可以使用接口获取该公众号最新的文章列表。
pythonimport requestsappid ="your appid"appsecret ="your appsecret"#获取access_tokenurl =f";appid={appid}&secret={appsecret}"response = (url).json()access_token = response["access_token"]#获取最新文章列表url =f"{access_token}"params ={ "type":"news", "offset":0, "count": 10}response = (url, json=params).json()articles = response["item"]
3.解析公众号文章链接
获取到最新的文章列表之后,我们可以通过解析每篇文章的URL链接来获取文章内容。具体来说,我们需要从每篇文章的URL链接中提取出以下信息:
-文章ID
-微信公众平台的token
-微信公众平台的fakeid
f6b1238abe50e568febeadc2249c509b_url =";#提取文章IDarticle_id = (r"s\/(.*?)\?", article_url).group(1)#获取token和fakeidurl =f"{biz}&fdfc012352d5e46aefebc9e0717c877e_token={token}&x5=0&f=json&mid={article_id}&idx=1&key=123"response = (url).json()token = response["fdfc012352d5e46aefebc9e0717c877e_token"]biz = response["general_msg_list"].split("|")[0].split("=")[1]fakeid = response["fakeid"]
4.获取公众号文章内容
获取到文章ID、token和fakeid之后,我们就可以使用接口获取该文章的具体内容了。
pythonurl =f"{biz}&fdfc012352d5e46aefebc9e0717c877e_token={token}&x5=0&f=json&mid={article_id}&idx=1&key=123"params ={ "is_only_read":1, "is_temp_url":0, "fdfc012352d5e46aefebc9e0717c877e_type":9, "reward_uin_count":0, "mid": article_id, "idx":1, "scene": 38, "is_need_reward":0, "uin": fakeid, "key": key}response = (url, json=params).json()content = response["fdfc012352d5e46aefebc9e0717c877e"]["content"]
5.渲染公众号文章内容
获取到文章内容之后,我们需要对其进行渲染,使其能够在网页上正常展示。具体来说,我们需要对文章内容进行以下处理:
-去除无用标签
-将图片链接替换为本地链接
-添加样式和布局
pythonimport re#去除无用标签content = (r"<[^>]*>","", content)#将图片链接替换为本地链接content = (r"data-src","src", content)#添加样式和布局content =f"{content}"
6.将公众号文章展示在网页上
最后一步,我们需要将渲染后的文章内容展示在网页上。具体来说,我们可以使用HTML和CSS来实现这个功能。
html公众号文章
通过以上步骤,我们就可以在网页上展示公众号文章了。这个功能非常实用,可以方便网站管理员将公众号文章与网站内容结合起来,提升网站的用户体验和价值。
关键词:
Copyright 2015-2022 亚洲供销网版权所有 备案号: 京ICP备2021034106号-51 联系邮箱:5 516 538 @qq.com