亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python自動獲取微信公眾號最新文章的實現(xiàn)代碼

 更新時間:2022年07月15日 11:44:57   作者:淥玦Leo_J  
這篇文章主要介紹了python自動獲取微信公眾號最新文章,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

微信公眾號獲取思路

常用的微信公眾號文章獲取方法有搜狐、微信公眾號主頁獲取和api接口等多個方法。
聽說搜狐最近不怎么好用了,之前用的api接口也頻繁維護,所以用了微信公眾平臺來進行數(shù)據(jù)爬取。
首先登陸自己的微信公眾平臺,沒有賬號的可以注冊一個。進來之后找“圖文信息”,就是寫公眾號的地方

在這里插入圖片描述

點進去后就是寫公眾號文章的界面,在界面中找到“超鏈接” 的字段,在這里就可以對其他的公眾號進行檢索。

在這里插入圖片描述

在這里插入圖片描述

以“python”為例,輸入要檢索的公眾號名稱,在顯示的公眾號中選擇要采集的公眾號

在這里插入圖片描述

點開瀏覽器的檢查,找到network中,下圖里的這個鏈接,而右邊的Request URL才是存儲公眾號數(shù)據(jù)的真實鏈接。說明這是個json網(wǎng)頁。

在這里插入圖片描述

采集實例

以公眾號“python”的 鏈接 為例對網(wǎng)址進行分析。

https://mp.weixin.qq.com/cgi-bin/appmsg:微信公眾平臺的鏈接
"token": "163455614",     #需要定期修改的token
"lang": "zh_CN", #語言
"f": "json",
"ajax": "1",  #顯示幾天的文章
"action": "list_ex"
"begin": "0", #起始頁面
"count": "1", #計數(shù)
"query": "",
"fakeid": 'MzIwNDA1OTM4NQ==',  #公眾號唯一編碼
"type": "9",

既然發(fā)現(xiàn)了fakeid是代表公眾號的唯一編碼,那接下來只需要把需要的公眾號的fakeid找到就行,我隨意找了三個公眾號的進行測試。

fakeid=[ 'MzIwNDA1OTM4NQ==','MzkxNzAwMDkwNQ==','MjM5NzI0NTY3Mg==']
#若增加公眾號需要增加fakeid

那接下來就是對網(wǎng)址的請求
首先導入需要的庫

import time
import requests
from lxml import etree
import pandas as pd
import json
import numpy as np
import datetime
import urllib3
from urllib3.exceptions import InsecureRequestWarning

urllib3.disable_warnings(InsecureRequestWarning)

由于不想重復登錄公眾號平臺,可以使用cookie避開登陸,對文章求情前需要找到網(wǎng)頁的cookie和User-Agent,由于微信公眾號回定期刷新,這個cookie和上面的token都要定期更換。
為避免反扒最好也找個代理ip

headers = {
"Cookie": "appmsglist_action_3567997841=card;wxuin=49763073568536;pgv_pvid=6311844914;ua_id=x6Ri8bc9LeaWnjNNAAAAADI-VXURALRxlSurJyxNNvg=;mm_lang=zh_CN;pac_uid=0_3cf43daf28071;eas_sid=11Q6v5b0x484W9i7W0Z7l7m3I8;rewardsn=;wxtokenkey=777;wwapp.vid=;wwapp.cst=;wwapp.deviceid=;uuid=fd43d0b369e634ab667a99eade075932;rand_info=CAESIHgWwDfp3W4M9F3/TGnzHp4kKkrkMiCEvN/tSNhHtNBm;slave_bizuin=3567997841;data_bizuin=3567997841;bizuin=3567997841;data_ticket=IfMEEajZ8UvywUZ1NiIv9eKZkq0cgeS0oP6tTzEwNSjwK6q+u5vLw0XYeFvLL/JA;slave_sid=aVBzSlpYOGt4eTdmbzFRWDc1OUhzR1A1UkwzdUdBaklDaGh2dWY2MUZKTEw1Um1aalZRUXg5aVBMeEJVNklCcGlVN0s5Z3VEMmRtVENHS1ZxNTBDOWRCR0p2V2FyY2daU0hxT09Remd5YmlhRWExZkMwblpweVc3SndUbnJIQk55MGhUeExJa1NJcWZ0QmJS;slave_user=gh_e0f449d4f2b6;xid=7d5dc56bb7bb526c70cfef3f6bdfa18a",
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36",
    }
proxies = {'http': '112.80.248.73'}

接下來就可以對頁面進行爬取,獲取頁面中的文章標題與文章鏈接,以及文章的時間,對網(wǎng)頁的信息進行分析發(fā)現(xiàn)網(wǎng)頁的所有信息都保存在’app_msg_list’這個字段中,所以對這個字段中的數(shù)據(jù)進行提取。

代碼如下:

獲取到的數(shù)據(jù)包存在df中,這里的數(shù)據(jù)還不是微信公眾號的最新文章數(shù)據(jù),而是微信公眾號這最近一天發(fā)出的文章數(shù)據(jù)。所以還需要對發(fā)文的時間進行篩選。注意到這里的時間格式為時間戳,所以需要對時間數(shù)據(jù)進行轉換
轉換代碼如下:

def time_s(df):
    def transfer_time(s): #時間處理
        aa = time.ctime(s)
        bb = aa.split(' ')
        cc = (bb[-1]+"-"+bb[1]+"-"+bb[-3]).replace('Jan','1').replace('Feb','2').replace('Mar','3'). \
            replace('Apr','4').replace('May','5').replace('Jun','6').replace('Jul','7').replace('Aug','8') \
            .replace('Sep','9').replace('Oct','10').replace('Nov','11').replace('Dec','12')
        dd = datetime.datetime.strptime(cc,'%Y-%m-%d').date()
        return dd
    
    ti=[]
    hd=[]
    for i in range(0,len(df['time'])):
        timestap= transfer_time(df['time'][i])
        ti.append(timestap)
        #print(ti)
        d= ti[i] + datetime.timedelta(weeks=0, days=0, hours=0, minutes=0, seconds=0, milliseconds=0, microseconds=0, )
        #dc = d.strftime("%Y-%m-%d")
        hd.append(d)
        
    df['time']=hd

這樣就可以把微信公眾號的時間戳數(shù)據(jù)轉換為時間數(shù)據(jù),之后,根據(jù)當前天的日期對數(shù)據(jù)集中的內(nèi)容進行提取與存儲就OK啦

dat=df[df['time'] == datetime.date.today() + datetime.timedelta(days= -1)] #自動獲取昨天日期,將-1改為-2,則為前天的日期,以此類推
    ##改自動化
    path = 'C:/Users/gpower/Desktop/work/行業(yè)信息/'   #根據(jù)自己電腦位置更改
    import re
    filename=path+"微信公眾號采集" + re.sub(r'[^0-9]','',datetime.datetime.now().strftime("%Y-%m-%d")) + '.csv'
    # 對文件進行命名,以“微信公眾號采集+當前日期”命名
    dat.to_csv(filename,encoding='utf_8_sig')
    print("保存成功")

這樣就可以把需要的微信公眾號最新文章采集下來了,需要多個微信公眾號在fakeid中添加公眾號的識別碼就OK啦~

到此這篇關于python自動獲取微信公眾號最新文章的文章就介紹到這了,更多相關python自動獲取微信公眾號文章內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論