<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
常用的微信公眾號文章獲取方法有搜狐、微信公眾號主頁獲取和api介面等多個方法。
聽說搜狐最近不怎麼好用了,之前用的api介面也頻繁維護,所以用了微信公眾平臺來進行資料爬取。
首先登陸自己的微信公眾平臺,沒有賬號的可以註冊一個。進來之後找“圖文資訊”,就是寫公眾號的地方
點進去後就是寫公眾號文章的介面,在介面中找到“超連結” 的欄位,在這裡就可以對其他的公眾號進行檢索。
以“python”為例,輸入要檢索的公眾號名稱,在顯示的公眾號中選擇要採集的公眾號
點開瀏覽器的檢查,找到network中,下圖裡的這個連結,而右邊的Request URL才是儲存公眾號資料的真實連結。說明這是個json網頁。
以公眾號“python”的 連結 為例對網址進行分析。
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", #計數 "query": "", "fakeid": 'MzIwNDA1OTM4NQ==', #公眾號唯一編碼 "type": "9",
既然發現了fakeid是代表公眾號的唯一編碼,那接下來只需要把需要的公眾號的fakeid找到就行,我隨意找了三個公眾號的進行測試。
fakeid=[ 'MzIwNDA1OTM4NQ==','MzkxNzAwMDkwNQ==','MjM5NzI0NTY3Mg=='] #若增加公眾號需要增加fakeid
那接下來就是對網址的請求
首先匯入需要的庫
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避開登陸,對文章求情前需要找到網頁的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'}
接下來就可以對頁面進行爬取,獲取頁面中的文章標題與文章連結,以及文章的時間,對網頁的資訊進行分析發現網頁的所有資訊都儲存在’app_msg_list’這個欄位中,所以對這個欄位中的資料進行提取。
程式碼如下:
獲取到的封包存在df中,這裡的資料還不是微信公眾號的最新文章資料,而是微信公眾號這最近一天發出的文章資料。所以還需要對發文的時間進行篩選。注意到這裡的時間格式為時間戳,所以需要對時間資料進行轉換
轉換程式碼如下:
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
這樣就可以把微信公眾號的時間戳資料轉換為時間資料,之後,根據當前天的日期對資料集中的內容進行提取與儲存就OK啦
dat=df[df['time'] == datetime.date.today() + datetime.timedelta(days= -1)] #自動獲取昨天日期,將-1改為-2,則為前天的日期,以此類推 ##改自動化 path = 'C:/Users/gpower/Desktop/work/行業資訊/' #根據自己電腦位置更改 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自動獲取微信公眾號文章內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45