分享文章:python自动获取微信公众号最新文章
优采云 发布时间: 2022-10-21 10:21分享文章:python自动获取微信公众号最新文章
微信公众号获取思路
获取微信公众号文章常用的方法有搜狐、微信公众号首页和api接口。
听说最近搜狐不太好用,而且之前使用的API接口也经常维护,所以使用微信公众平台进行数据爬取。
首先,登录你的微信公众平台。如果您没有帐户,您可以注册一个。进来后找“图文资料”,就是写公众号的地方
点击后会出现写公众号的界面文章。在界面中,您会找到“超链接”字段,您可以在其中搜索其他公众号。
以“python”为例,输入要检索的公众号名称,从显示的公众号中选择公众号为采集
点击浏览器查看,在网络中找到链接,下图中的链接,右边的Request URL是存储公众号数据的真实链接。表示这是一个 json 网页。
采集实例
以公众号“python”的链接为例,分析URL。
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
然后下一步就是请求URL
首先导入需要的库
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)
由于不想重复登录公众号平台,可以使用cookies来避免登录。在请求文章之前,需要先找到网页的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",
<p>
"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'}
</p>
接下来可以爬取页面,获取页面中的文章标题和文章链接,以及文章的时间,分析网页的信息,发现所有的信息网页保存在“app_msg_list”字段中,因此提取该字段中的数据。
寻找
代码显示如下:
def get_weixin(fakeid):
url = "https://mp.weixin.qq.com/cgi-bin/appmsg"
# 使用Cookie,跳过登陆操作
#headers 根据自己电脑修改
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",
}
dda=[]
for i in range(0,len(fakeid)):
#配置网址
data= {
"token": "163455614", #需要定期修改
"lang": "zh_CN",
"f": "json",
"ajax": "1",
"action": "list_ex",
"begin": "0",
"count": "1",
"query": "",
"fakeid": fakeid[i],
"type": "9",
}
dda.append(data)
content_list = []
proxies = {'http': '112.80.248.73'}
ur=[]
title=[]
link=[]
time1=[]
content_li=[]
for i in range(0,len(dda)):
time.sleep(np.random.randint(90, 200))
content_json = requests.get(url, headers=headers, params=dda[i],proxies=proxies,verify=False).json()
print("爬取成功第"+str(i)+"个")
# 返回了一个json,里面是每一页的数据
<p>
for it in content_json["app_msg_list"]: #提取信息
its = []
title.append(it["title"]) #标题
link.append(it["link"]) #链接
time1.append(it['create_time']) #时间
#content_li.append(its)
columns={'title':title,'link':link,'time':time1} #组成df文件
df=pd.DataFrame(columns)
return df
</p>
得到的数据包存放在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
这样就可以将微信公众号的时间戳数据转换为时间数据,然后根据当天的日期提取数据集中的内容并存储。
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中添加公众号的识别码。
新年文章属于yes
免费获取:微信公众号文章搜索导出助手神器
“你知道如何一键下载公众号文章/网页的所有图片、视频和音频吗?” 我不知道为什么?这个问题好像永远,永远,永远,永远被问,但是这个问题,却无所谓,做一个好的复读机是我的工作,作为一个高水平复读机,我也努力让每一个复读机都有新的想法,以前需要N个步骤的,不适合大多数穷懒脑筋的,所以这次我找到了这个软件,这个工具我找到了
有以下三个优点:
1.易于安装
2. 免费下载,使用方便
3.可过滤的图片
相信我!下载它!!
第一步,复制你要导出的微信公众账号图片。
第二步,直接粘贴到下载的软件中
第三步,启动采集,采集完成后,即可导出
第四步,选择你要导出的格式,OK,到此结束,就这么简单,soeasy!
我们来看看实际的导出效果:
下面是保存的图片,每个文章一个文件夹,里面存放了文章的所有高清图片
下面是导出的视音频格式,和原来文章看到的视音频是一样的
下面是html、doc、pdf格式的导出,和原来的文章一样
下载的内容显示如下,和原来的阅读效果一样:
- - - - - - - - - - - - - - - - - 分向線 - - - - - - - ----------------------
微信公众号文章搜索下载助手,搜索下载一体,可一键搜索微信平台文章所有公众号关键词超大素材库,可以关键词@采集指定公众号的所有群发文章,批量导出word、pdf或html。所以,无论你是在自媒体寻找文章素材,还是个人用户搜索下载文章,都可以使用!请看下面的功能介绍:
【主要功能介绍】
★ 一键采集微信公众号发送所有群消息文章,也可以通过关键词搜索所有与文章相关的公众号,支持按时间段采集;
★ 文章可以一键导出Pdf、Word、Excel、txt和Html格式,并可以下载音视频文件、图片和文章消息,导出文件的版面可以保持一致原文;
★ 实时查看文章阅读和留言,一键复制文章内容;
★ 内置开放界面,一键同步所有微信文章到自己网站,保证微信图片正常显示;
★ 软件提供近80个附加功能,功能强大实用。如果你不相信我,看看下面的演示:
简而言之,这是一个非常非常强大和方便的软件,可以在 1 分钟内完成所有操作。
但仅仅拥有软件的强大功能是不够的。我们必须照顾小白吗?答案当然是,我们的软件除了强大的功能外,还有强大的售后问题解决能力。不仅为使用过程中的疑难问题提供解答,还提供各种视频版网络教学教程,包括大家的大本营是一个温暖的地方,购买软件让我们更心心相印。
下载软件并扫描下方二维码或地址
如果觉得本软件不错,请点击关注并采集,如果喜欢本软件,请点按下方二维码,加V:xtcclass,即可获得优惠哦~~
软件会员目前为一年会员制,会员期内不限下载。它非常易于使用且价格不贵。之所以收费,是因为发展确实非常非常大。精力和时间,我更有动力不断更新收费的软件,对你来说也更安全。注意点击上方二维码有优惠哦~~~全网唯一!!!