通過微信公衆平臺獲取公衆號文章

我之前自己維護了一個公衆號,但因爲個人關係很久沒有更新了,今天上來緬懷一下,卻偶然發現了一個獲取微信公衆號文章的方法。

之前獲取方法有很多,通過搜狗、清博、網頁端、客戶端等等都還可以,這個可能並沒有其他的優秀,但是操作簡單,很容易理解。

so、 首先需要有一個微信公衆平臺的賬號


微信公衆平臺:https://mp.weixin.qq.com/
在這裏插入圖片描述
登陸之後,進入首頁,點擊新建羣發。

在這裏插入圖片描述
選擇自建圖文:
在這裏插入圖片描述
似乎像是公衆號運營教學了
進入編輯頁面之後,點擊超鏈接
在這裏插入圖片描述


彈出選擇框,我們在框中輸入對應的公衆號名字,即可出現對應的文章列表
在這裏插入圖片描述
是不是很驚奇,可以打開控制檯,查看一下請求的接口

在這裏插入圖片描述
打開response,裏面就是我們需要的文章鏈接
在這裏插入圖片描述
確定了數據以後,我們需要分析一下這個接口
感覺很簡單,一個GET請求,攜帶一些參數。
在這裏插入圖片描述


fakeid是公衆號的獨有ID,所以想通過名字直接獲取文章列表,還需要先獲取一下fakeid。
當我們輸入公衆號名字後,點擊搜索。可以看到觸發了搜索接口,返回了fakeid。
在這裏插入圖片描述
這個接口所需參數也不多。
在這裏插入圖片描述
接下來,我們可以用代碼來模擬以上的操作了。

但是還需要使用現有Cookie避免登陸。

在這裏插入圖片描述
目前Cookie的有效期,我還沒有測試。可能需要及時更新Cookie。


測試代碼:


import requests
import json

Cookie = '請換上自己的Cookie,獲取方法:直接複製下來'
url = "https://mp.weixin.qq.com/cgi-bin/appmsg"
headers = {
  "Cookie": Cookie,        
  "User-Agent": 'Mozilla/5.0 (Linux; Android 10; YAL-AL00 Build/HUAWEIYAL-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.64 HuaweiBrowser/10.0.1.335 Mobile Safari/537.36'
    }

keyword = 'pythonlx'      # 公衆號名字:可自定義
token = '你的token'        # 獲取方法:如上述 直接複製下來
search_url = 'https://mp.weixin.qq.com/cgi-bin/searchbiz?action=search_biz&begin=0&count=5&query={}&token={}&lang=zh_CN&f=json&ajax=1'.format(keyword,token)

doc = requests.get(search_url,headers=headers).text
jstext = json.loads(doc)
fakeid = jstext['list'][0]['fakeid']

data = {
    "token": token,
    "lang": "zh_CN",
    "f": "json",
    "ajax": "1",
    "action": "list_ex",
    "begin": 0,
    "count": "5",
    "query": "",
    "fakeid": fakeid,
    "type": "9",
    }
json_test = requests.get(url, headers=headers, params=data).text
json_test = json.loads(json_test)
print(json_test)

這樣就能獲取最新的10篇文章了,如果想要獲取更多的歷史文章,可以修改data中的"begin"參數,0是第一頁,5是第二頁,10是第三頁(以此類推)

但是如果想要大規模抓取的話:
請給自己安排一個穩定的代理,降低爬蟲的速度,準備多個賬號,來減少被封禁的可能性。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章