亚洲国产精品无码久久大片,亚洲AV无码乱码麻豆精品国产,亚洲品质自拍网站,少妇伦子伦精品无码STYLES,国产精久久久久久久

querylist采集微信公眾號文章(如何獲取微信公眾號所有文章?ID與開(kāi)發(fā)者密碼)

優(yōu)采云 發(fā)布時(shí)間: 2022-03-24 00:24

  querylist采集微信公眾號文章(如何獲取微信公眾號所有文章?ID與開(kāi)發(fā)者密碼)

  導出所有公眾號文章

  隨著(zhù)互聯(lián)網(wǎng)的不斷發(fā)展,互聯(lián)網(wǎng)上出現了許多自媒體平臺。不用說(shuō),相信大家都知道現在哪些平臺很火。

  可以說(shuō),所有知名的自媒體都有自己的公眾號。然而,平臺的創(chuàng )新和涌現可謂是層出不窮。如果需要在平臺上直播,則必須獲取原平臺的歷史資源。

  例如,對于微信公眾號,我們需要獲取微信公眾號的文章。導出后,我們可以在其他平臺上查看。那么如何獲取我們公眾號下的所有文章呢?

  開(kāi)發(fā)者 ID 和開(kāi)發(fā)者密碼

  其實(shí)公眾號為我們的開(kāi)發(fā)提供了一個(gè)非常友好的界面,我們可以得到文章的所有鏈接,而不需要一一抓取。

  

  如上圖,我們需要進(jìn)入公眾號主頁(yè),然后通過(guò)設置與開(kāi)發(fā)-基礎配置找到開(kāi)發(fā)者ID和開(kāi)發(fā)者密碼。

  因為微信為我們提供了一個(gè)專(zhuān)門(mén)為我們獲取公眾號文章的接口,具體接口URL如下代碼所示:

  

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

  這里的APPID是開(kāi)發(fā)中的ID,APPSECRET是開(kāi)發(fā)者密碼,獲取方式如下圖。

  

  但是,有一個(gè)IP白名需要注意。為了公眾號文章的安全,必須設置IP地址才能獲取。如果后面的代碼不在IP下運行,肯定會(huì )報錯。

  

  如上圖所示,IP白名單就是直接設置你的IP地址。設置完成后點(diǎn)擊修改,彈出二維碼,用微信掃描即可。

  

https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=

  這還不夠,因為URL接口只獲取access_token,也就是訪(fǎng)問(wèn)公眾號的token,獲取公眾號的鏈接文章就是上面那個(gè)。

  獲取Json格式的公眾號文章信息

  現在我們對原理有了基本的了解,下面我們通過(guò)實(shí)戰來(lái)獲取文章的所有公眾號標題、鏈接、描述、展示圖片。一個(gè)例子如下:

  

import requests

import json

import csv

def getGZHJson(appid, secret):

path = " https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential"

url = path + "&appid=" + appid + "&secret=" + secret

result = requests.get(url)

token = json.loads(result.text)

access_token = token["access_token"]

data = {

"type": "news",

"offset": 0,

"count": 1,

}

headers = {

"content-type": "application/json",

"Accept-Language": "zh-CN,zh;q=0.9"

}

url = "https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=" + access_token

result = requests.post(url=url, data=json.dumps(data), headers=headers)

result.encoding = result.apparent_encoding

result = json.loads(result.text)

count = int(result["total_count"])

gzh_dict = {"news_item": []}

for i in range(0, count):

data["offset"] = i

result = requests.post(url=url, data=json.dumps(data), headers=headers)

result.encoding = result.apparent_encoding

result = json.loads(result.text)

for item in result["item"][0]["content"]["news_item"]:

temp_dict = {}

temp_dict["title"] = item["title"]

temp_dict["digest"] = item["digest"]

temp_dict["url"] = item["url"]

temp_dict["thumb_url"] = item["thumb_url"]

print(temp_dict)

gzh_dict["news_item"].append(temp_dict)

return json.dumps(gzh_dict)

getGZHJson("開(kāi)發(fā)者ID", "開(kāi)發(fā)者密碼")

  這里,我們看一下結果的原創(chuàng )文本數據,如下:

  

  在原創(chuàng )的JSON數據中,有一個(gè)非常重要的數據就是total_count,它是公眾號成立以來(lái)的推送次數。

  不過(guò)需要注意的是,公眾號可以一次推送一篇文章,也可以一次推送2、3、4篇文章,并不總是一樣的。

  至于獲取哪些推送數據,可以通過(guò)offset追溯到源頭。至于每次有多少篇文章,需要確定返回多少Json數據news_item。如下所示:

  

  因此,我們還為其添加了遍歷。第一層遍歷是微信公眾號推送當天的數據,第二層遍歷是當天發(fā)送的文章數。運行后效果如下:

  

  參數含義

  標題

  文章標題

  消化

  文章說(shuō)明

  網(wǎng)址

  文章鏈接

  拇指網(wǎng)址

  文章顯示地圖

  將數據保存到 CSV 文件

  當然,我們獲取的數據并不是在控制臺上打印出來(lái),而是導出數據。因此,我們將上述數據打包成 CSV 文件并保存。

  一個(gè)例子如下:

  

result = requests.post(url=url, data=json.dumps(data), headers=headers)

result.encoding = result.apparent_encoding

print(result.encoding)

result = json.loads(result.text)

count = int(result["total_count"])

#替換下面的代碼

ulist = ["_id", "title", "digest", "url", "thumb_url"]

# 保存數據到csv文件

new_item_csv = "week"

with open("{}.csv".format(new_item_csv), "w", encoding="utf-8-sig", newline="") as f:

writer = csv.writer(f, dialect="excel")

writer.writerow(ulist)

for i in range(0, count):

data["offset"] = i

result = requests.post(url=url, data=json.dumps(data), headers=headers)

result.encoding = result.apparent_encoding

result = json.loads(result.text)

for item in result["item"][0]["content"]["news_item"]:

writer.writerow([count_id, item["title"], item["digest"], item["url"], item["thumb_url"]])

count_id += 1

  這里只需要更改代碼count = int(result['total_count"])下面的所有數據即可。上面的代碼保持不變。

  需要注意的是,之所以設置result.encoding = result.apparent_encoding,是因為我們事先并不知道返回數據的編碼。這確保了可以有效地解析任何編碼。

  運行后如下圖,公眾號文章的所有基本信息都已獲取。

  

  這是文章關(guān)于使用Python獲取公眾號下所有文章的介紹。更多關(guān)于Python獲取公眾號文章的信息,請搜索上一期服務(wù)器首頁(yè)文章或繼續瀏覽以下相關(guān)文章希望大家多多支持服務(wù)器首頁(yè)未來(lái)!

  原文鏈接:

0 個(gè)評論

要回復文章請先登錄注冊


官方客服QQ群

微信人工客服

QQ人工客服


線(xiàn)

亚洲国产精品无码久久大片,亚洲AV无码乱码麻豆精品国产,亚洲品质自拍网站,少妇伦子伦精品无码STYLES,国产精久久久久久久