最近我有一個需求,需要在自己的網站上展示公眾號文章,但是不想手動復制粘貼每篇文章的內容。于是我就開始了解如何通過代碼實現網頁調取公眾號文章的功能。經過一番探索和嘗試,我終于成功實現了這個功能,并在這里分享給大家。
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公眾號文章
通過以上步驟,我們就可以在網頁上展示公眾號文章了。這個功能非常實用,可以方便網站管理員將公眾號文章與網站內容結合起來,提升網站的用戶體驗和價值。
關鍵詞:
版權與免責聲明:
1 本網注明“來源:×××”(非商業周刊網)的作品,均轉載自其它媒體,轉載目的在于傳遞更多信息,并不代表本網贊同其觀點和對其真實性負責,本網不承擔此類稿件侵權行為的連帶責任。
2 在本網的新聞頁面或BBS上進行跟帖或發表言論者,文責自負。
3 相關信息并未經過本網站證實,不對您構成任何投資建議,據此操作,風險自擔。
4 如涉及作品內容、版權等其它問題,請在30日內同本網聯系。