好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識(shí)庫 > 使用Python獲取公眾號(hào)下所有的文章

使用Python獲取公眾號(hào)下所有的文章

熱門標(biāo)簽:大連crm外呼系統(tǒng) 地圖標(biāo)注視頻廣告 高德地圖標(biāo)注是免費(fèi)的嗎 北京電信外呼系統(tǒng)靠譜嗎 無錫客服外呼系統(tǒng)一般多少錢 梅州外呼業(yè)務(wù)系統(tǒng) 老人電話機(jī)器人 洪澤縣地圖標(biāo)注 百度地圖標(biāo)注位置怎么修改

導(dǎo)出公眾號(hào)所有文章

隨著互聯(lián)網(wǎng)的不斷發(fā)展,網(wǎng)絡(luò)上興起了很多的自媒體平臺(tái)。不用我說,相信大家也能知道當(dāng)下非常流行的平臺(tái)都有哪些。

可以說凡是比較知名的自媒體,都有自己的公眾號(hào)。但是平臺(tái)的創(chuàng)新與出現(xiàn)可謂層出不窮,如果需要入住平臺(tái),肯定需要獲取原平臺(tái)的歷史資源。

比如說微信公眾號(hào),我們就需要獲取微信公眾號(hào)的文章,將其導(dǎo)出后,入住其他的平臺(tái),那么如何獲取自己公眾號(hào)下的所有文章呢?

開發(fā)者ID與開發(fā)者密碼

其實(shí),公眾號(hào)給我們開發(fā)中提供了非常友好的接口,并不需要我們一個(gè)一個(gè)去爬,就可以獲取文章的所有鏈接。


如上圖所示,我們需要進(jìn)入公眾號(hào)主頁,然后通過設(shè)置與開發(fā)-基本配置,找到開發(fā)者ID與開發(fā)者密碼。

因?yàn)槲⑿沤o我們提供了接口專門用于我們獲取公眾號(hào)的文章,具體的接口網(wǎng)址,如下面代碼所示:

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credentialappid=APPIDsecret=APPSECRET

這里的APPID就是開發(fā)中ID,APPSECRET就是開發(fā)者密碼,如下圖所示進(jìn)行獲取。


不過,這里有一個(gè)IP白名需要注意,為了公眾號(hào)文章的安全,必須設(shè)置IP地址才能獲取。如果后面的代碼并沒有在IP下運(yùn)行,那么肯定會(huì)報(bào)錯(cuò)。


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

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

這樣還不行,因?yàn)樵摼W(wǎng)址接口只是獲取access_token,也就是訪問公眾號(hào)的令牌,而獲取公眾號(hào)文章的鏈接是上面這個(gè)。

獲取Json格式的公眾號(hào)文章信息

既然已經(jīng)基本了解了原理,下面我們來通過實(shí)戰(zhàn)獲取所有的公眾號(hào)標(biāo)題,鏈接,描述以及文章的展示圖。示例如下:

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('開發(fā)者ID', '開發(fā)者密碼')

這里,我們先來看一下result的原始文本數(shù)據(jù),具體如下所示:


原始的JSON數(shù)據(jù)中,有一個(gè)非常重要的數(shù)據(jù)也就是total_count,也就是公眾號(hào)成立以來,推送的次數(shù)。

但是需要注意,公眾號(hào)可以單次推送一篇,或者單次推送2,3,4篇,并不一直都是一模一樣。

而獲取哪次推送的數(shù)據(jù),你可以通過offset逆向溯源,至于每次是多少篇,則需要通過返回的Json數(shù)據(jù)news_item有多少個(gè)決定。如下圖所示:


所以,我們還有在里面加上一次遍歷,第1層遍歷的是微信公眾號(hào)推送的哪天數(shù)據(jù),第2層遍歷,遍歷的是當(dāng)天發(fā)送的篇數(shù)。運(yùn)行之后,效果如下:

參數(shù) 含義
title 文章標(biāo)題
digest 文章描述
url 文章鏈接
thumb_url 文章展示圖

保存數(shù)據(jù)到CSV文件

當(dāng)然,我們獲取數(shù)據(jù)并不是為了在控制臺(tái)去打印,而是為了導(dǎo)出數(shù)據(jù)。所以,我們將上面的數(shù)據(jù)打包到CSV文件中保存起來。

示例如下:

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']
# 保存數(shù)據(jù)到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'])代碼下面的所有數(shù)據(jù)即可。上面的代碼保持不變。

需要額外注意的是,之所以設(shè)置result.encoding = result.apparent_encoding,是因?yàn)榉祷財(cái)?shù)據(jù)的編碼事先我們并不知道,這樣做能保證任何編碼都能有效的解析。

運(yùn)行之后,如下圖所示,所有的公眾號(hào)文章的基本詳情就全部獲取到了。

到此這篇關(guān)于使用Python獲取公眾號(hào)下所有的文章的文章就介紹到這了,更多相關(guān)Python獲取公眾號(hào)文章內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python 微信公眾號(hào)文章爬取的示例代碼
  • python如何導(dǎo)出微信公眾號(hào)文章方法詳解
  • Python selenium爬取微信公眾號(hào)文章代碼詳解
  • Python如何爬取微信公眾號(hào)文章和評(píng)論(基于 Fiddler 抓包分析)
  • python抓取搜狗微信公眾號(hào)文章
  • python爬取微信公眾號(hào)文章的方法
  • python爬取指定微信公眾號(hào)文章
  • python采集微信公眾號(hào)文章
  • python爬取微信公眾號(hào)文章

標(biāo)簽:長春 清遠(yuǎn) 岳陽 怒江 泉州 洛陽 安慶 吉林

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《使用Python獲取公眾號(hào)下所有的文章》,本文關(guān)鍵詞  使用,Python,獲取,公眾,號(hào)下所,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《使用Python獲取公眾號(hào)下所有的文章》相關(guān)的同類信息!
  • 本頁收集關(guān)于使用Python獲取公眾號(hào)下所有的文章的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 性xxxx视频播放孕妇| 全部免费毛片免费播放| melody在线高清免费观看| 草莓视频污在线下载| 张筱雨裸体写真曝光| 色噜噜久久蜜桃无码爱豆TV| 饥渴的妻子| 片片片在线观看网站| 国产成人啪精品视频站午夜| 国产精九九???网站漫画| 国精产品一区一区二区三区四区 | 女同啪啪免费网站www| 久久青草国产精品一区| 成人Av免费看| 在线最新韩国理伦片r级| 蜜柚在线观看完整版免费高清| 手机看片片| 精品国产午夜激无码毛片| 总攻调教多受奴后宫| 国产3p露脸普通话对白| 苗族一级毛片真人| EESUU免费理论片| 国模小黎第三套大尺度人体| 日韩色综合| 日韩欧美中文精品电影| ww欧洲ww在线视频看| 国产黄色片在线观看| 又粗又硬又长太猛太爽受不了| 日韩人妻无码一区二区| 福利深夜 小视频 秒拍 微拍| 韩国十大艳星顶级A片| 国模尺度私拍在线视频| 海角社区近親偷子亂伦在线观看 | 香港三级日本三级人妇三级四| 亚洲AV无码秘?蜜桃香奈| 国产精品26P| 欧美一级黃色A片免费看蜜桃熟了| 国产做受???高潮豆麻| 午夜宅男影院| 国产精品无码视频| 欧美xxxx做受视频|