分享文章: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 = {&#39;http&#39;: &#39;112.80.248.73&#39;}

</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 = {&#39;http&#39;: &#39;112.80.248.73&#39;}

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[&#39;create_time&#39;]) #时间

#content_li.append(its)

columns={&#39;title&#39;:title,&#39;link&#39;:link,&#39;time&#39;: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(&#39; &#39;)

cc = (bb[-1]+"-"+bb[1]+"-"+bb[-3]).replace(&#39;Jan&#39;,&#39;1&#39;).replace(&#39;Feb&#39;,&#39;2&#39;).replace(&#39;Mar&#39;,&#39;3&#39;). \

replace(&#39;Apr&#39;,&#39;4&#39;).replace(&#39;May&#39;,&#39;5&#39;).replace(&#39;Jun&#39;,&#39;6&#39;).replace(&#39;Jul&#39;,&#39;7&#39;).replace(&#39;Aug&#39;,&#39;8&#39;) \

.replace(&#39;Sep&#39;,&#39;9&#39;).replace(&#39;Oct&#39;,&#39;10&#39;).replace(&#39;Nov&#39;,&#39;11&#39;).replace(&#39;Dec&#39;,&#39;12&#39;)

dd = datetime.datetime.strptime(cc,&#39;%Y-%m-%d&#39;).date()

return dd

ti=[]

hd=[]

for i in range(0,len(df[&#39;time&#39;])):

timestap= transfer_time(df[&#39;time&#39;][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[&#39;time&#39;]=hd

  这样就可以将微信公众号的时间戳数据转换为时间数据,然后根据当天的日期提取数据集中的内容并存储。

  dat=df[df[&#39;time&#39;] == datetime.date.today() + datetime.timedelta(days= -1)] #自动获取昨天日期,将-1改为-2,则为前天的日期,以此类推

##改自动化

path = &#39;C:/Users/gpower/Desktop/work/行业信息/&#39; #根据自己电脑位置更改

import re

filename=path+"微信公众号采集" + re.sub(r&#39;[^0-9]&#39;,&#39;&#39;,datetime.datetime.now().strftime("%Y-%m-%d")) + &#39;.csv&#39;

# 对文件进行命名,以“微信公众号采集+当前日期”命名

dat.to_csv(filename,encoding=&#39;utf_8_sig&#39;)

print("保存成功")

  这样就可以下载最新的微信公众号文章采集。如果需要多个微信公众号,可以在fakeid中添加公众号的识别码。

  新年文章属于yes

  免费获取:微信公众号文章搜索导出助手神器

  “你知道如何一键下载公众号文章/网页的所有图片、视频和音频吗?” 我不知道为什么?这个问题好像永远,永远,永远,永远被问,但是这个问题,却无所谓,做一个好的复读机是我的工作,作为一个高水平复读机,我也努力让每一个复读机都有新的想法,以前需要N个步骤的,不适合大多数穷懒脑筋的,所以这次我找到了这个软件,这个工具我找到了

  有以下三个优点:

  1.易于安装

  2. 免费下载,使用方便

  3.可过滤的图片

  相信我!下载它!!

  第一步,复制你要导出的微信公众账号图片。

  第二步,直接粘贴到下载的软件中

  第三步,启动采集,采集完成后,即可导出

  第四步,选择你要导出的格式,OK,到此结束,就这么简单,soeasy!

  我们来看看实际的导出效果:

  下面是保存的图片,每个文章一个文件夹,里面存放了文章的所有高清图片

  下面是导出的视音频格式,和原来文章看到的视音频是一样的

  

  下面是html、doc、pdf格式的导出,和原来的文章一样

  下载的内容显示如下,和原来的阅读效果一样:

  - - - - - - - - - - - - - - - - - 分向線 - - - - - - - ----------------------

  微信公众号文章搜索下载助手,搜索下载一体,可一键搜索微信平台文章所有公众号关键词超大素材库,可以关键词@采集指定公众号的所有群发文章,批量导出word、pdf或html。所以,无论你是在自媒体寻找文章素材,还是个人用户搜索下载文章,都可以使用!请看下面的功能介绍:

  【主要功能介绍】

  ★ 一键采集微信公众号发送所有群消息文章,也可以通过关键词搜索所有与文章相关的公众号,支持按时间段采集;

  ★ 文章可以一键导出Pdf、Word、Excel、txt和Html格式,并可以下载音视频文件、图片和文章消息,导出文件的版面可以保持一致原文;

  ★ 实时查看文章阅读和留言,一键复制文章内容;

  ★ 内置开放界面,一键同步所有微信文章到自己网站,保证微信图片正常显示;

  ★ 软件提供近80个附加功能,功能强大实用。如果你不相信我,看看下面的演示:

  

  简而言之,这是一个非常非常强大和方便的软件,可以在 1 分钟内完成所有操作。

  但仅仅拥有软件的强大功能是不够的。我们必须照顾小白吗?答案当然是,我们的软件除了强大的功能外,还有强大的售后问题解决能力。不仅为使用过程中的疑难问题提供解答,还提供各种视频版网络教学教程,包括大家的大本营是一个温暖的地方,购买软件让我们更心心相印。

  下载软件并扫描下方二维码或地址

  如果觉得本软件不错,请点击关注并采集,如果喜欢本软件,请点按下方二维码,加V:xtcclass,即可获得优惠哦~~

  软件会员目前为一年会员制,会员期内不限下载。它非常易于使用且价格不贵。之所以收费,是因为发展确实非常非常大。精力和时间,我更有动力不断更新收费的软件,对你来说也更安全。注意点击上方二维码有优惠哦~~~全网唯一!!!

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线