iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > Python >使用Python获取公众号下所有的文章
  • 322
分享到

使用Python获取公众号下所有的文章

2024-04-02 19:04:59 322人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录导出公众号所有文章开发者ID与开发者密码保存数据到CSV文件导出公众号所有文章 随着互联网的不断发展,网络上兴起了很多的自媒体平台。不用我说,相信大家也能知道当下非常流行的平台都

导出公众号所有文章

随着互联网的不断发展,网络上兴起了很多的自媒体平台。不用我说,相信大家也能知道当下非常流行的平台都有哪些。

可以说凡是比较知名的自媒体,都有自己的公众号。但是平台的创新与出现可谓层出不穷,如果需要入住平台,肯定需要获取原平台的历史资源。

比如说微信公众号,我们就需要获取微信公众号的文章,将其导出后,入住其他的平台,那么如何获取自己公众号下的所有文章呢?

开发者ID与开发者密码

其实,公众号给我们开发中提供了非常友好的接口,并不需要我们一个一个去爬,就可以获取文章的所有链接。

基本配置

如上图所示,我们需要进入公众号主页,然后通过设置与开发-基本配置,找到开发者ID与开发者密码。

因为微信给我们提供了接口专门用于我们获取公众号的文章,具体的接口网址,如下面代码所示:


https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

这里的APPID就是开发中ID,APPSECRET就是开发者密码,如下图所示进行获取。

IP白名单

不过,这里有一个IP白名需要注意,为了公众号文章的安全,必须设置IP地址才能获取。如果后面的代码并没有在IP下运行,那么肯定会报错。

IP白名单2
如上图所示,IP白名单是直接设置你的IP地址,设置完成之后点击修改,弹出二维码后用微信扫描即可。


Https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=

这样还不行,因为该网址接口只是获取access_token,也就是访问公众号的令牌,而获取公众号文章的链接是上面这个。

获取JSON格式的公众号文章信息

既然已经基本了解了原理,下面我们来通过实战获取所有的公众号标题,链接,描述以及文章的展示图。示例如下:


import requests
import json
import csv

def getGZHJson(appid, secret):
    path = " https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential"
    url = path + "&appid=" + appid + "&secret=" + secret
    result = requests.get(url)
    token = json.loads(result.text)
    access_token = token['access_token']
    data = {
        "type": "news",
        "offset": 0,
        "count": 1,
    }
    headers = {
        'content-type': "application/json",
        'Accept-Language': 'zh-CN,zh;q=0.9'
    }
    url = 'https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=' + access_token
    result = requests.post(url=url, data=json.dumps(data), headers=headers)
    result.encoding = result.apparent_encoding
    result = json.loads(result.text)
    count = int(result['total_count'])
    gzh_dict = {"news_item": []}
    for i in range(0, count):
        data['offset'] = i
        result = requests.post(url=url, data=json.dumps(data), headers=headers)
        result.encoding = result.apparent_encoding
        result = json.loads(result.text)
        for item in result['item'][0]['content']['news_item']:
            temp_dict = {}
            temp_dict['title'] = item["title"]
            temp_dict['digest'] = item["digest"]
            temp_dict['url'] = item["url"]
            temp_dict['thumb_url'] = item["thumb_url"]
            print(temp_dict)
            gzh_dict['news_item'].append(temp_dict)
    return json.dumps(gzh_dict)

getGZHJson('开发者ID', '开发者密码')

这里,我们先来看一下result的原始文本数据,具体如下所示:

total

原始的JSON数据中,有一个非常重要的数据也就是total_count,也就是公众号成立以来,推送的次数。

但是需要注意,公众号可以单次推送一篇,或者单次推送2,3,4篇,并不一直都是一模一样。

而获取哪次推送的数据,你可以通过offset逆向溯源,至于每次是多少篇,则需要通过返回的Json数据news_item有多少个决定。如下图所示:

news_item

所以,我们还有在里面加上一次遍历,第1层遍历的是微信公众号推送的哪天数据,第2层遍历,遍历的是当天发送的篇数。运行之后,效果如下:

获取的数据

参数 含义
title 文章标题
digest 文章描述
url 文章链接
thumb_url 文章展示图

保存数据到CSV文件

当然,我们获取数据并不是为了在控制台去打印,而是为了导出数据。所以,我们将上面的数据打包到CSV文件中保存起来。

示例如下:


result = requests.post(url=url, data=json.dumps(data), headers=headers)
result.encoding = result.apparent_encoding
print(result.encoding)
result = json.loads(result.text)
count = int(result['total_count'])

#替换下面的代码
ulist = ["_id", "title", 'digest', 'url', 'thumb_url']
# 保存数据到csv文件
new_item_csv = 'week'
with open('{}.csv'.fORMat(new_item_csv), 'w', encoding='utf-8-sig', newline='') as f:
    writer = csv.writer(f, dialect='excel')
    writer.writerow(ulist)
    for i in range(0, count):
        data['offset'] = i
        result = requests.post(url=url, data=json.dumps(data), headers=headers)
        result.encoding = result.apparent_encoding
        result = json.loads(result.text)
        for item in result['item'][0]['content']['news_item']:
            writer.writerow([count_id, item["title"], item["digest"], item["url"], item["thumb_url"]])
            count_id += 1

这里,只需要改count = int(result[‘total_count'])代码下面的所有数据即可。上面的代码保持不变。

需要额外注意的是,之所以设置result.encoding = result.apparent_encoding,是因为返回数据的编码事先我们并不知道,这样做能保证任何编码都能有效的解析。

运行之后,如下图所示,所有的公众号文章的基本详情就全部获取到了。

数据获取

到此这篇关于使用python获取公众号下所有的文章的文章就介绍到这了,更多相关Python获取公众号文章内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 使用Python获取公众号下所有的文章

本文链接: https://www.lsjlt.com/news/129032.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 使用Python获取公众号下所有的文章
    目录导出公众号所有文章开发者ID与开发者密码保存数据到CSV文件导出公众号所有文章 随着互联网的不断发展,网络上兴起了很多的自媒体平台。不用我说,相信大家也能知道当下非常流行的平台都...
    99+
    2024-04-02
  • 怎么用python自动获取微信公众号最新文章
    本篇内容介绍了“怎么用python自动获取微信公众号最新文章”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!微信公众号获取思路常用的微信公众号...
    99+
    2023-07-02
  • 如何使用python3抓取微信公众号文章
    通过微信公众平台的查找文章接口,抓取我们需要的相关文章 1.首先我们先看一下,通过正常的登录自己的微信公众号,然后用文章搜索功能,搜索一下我们需要查找的相关文章。 打开https://mp.weixin.qq.com 登录公众号,打开素材...
    99+
    2023-01-31
    如何使用 公众 文章
  • python自动获取微信公众号最新文章的实现代码
    目录微信公众号获取思路采集实例微信公众号获取思路 常用的微信公众号文章获取方法有搜狐、微信公众号主页获取和api接口等多个方法。听说搜狐最近不怎么好用了,之前用的api接口也频繁维护...
    99+
    2024-04-02
  • python如何实现微信公众号文章爬取
    小编给大家分享一下python如何实现微信公众号文章爬取,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体步骤如下:一、安装代理服务器目前使用的是Anyproxy...
    99+
    2023-06-19
  • python爬取微信公众号文章图片并转为PDF
    遇到那种有很多图的微信公众号文章咋办?一个一个存很麻烦,应朋友的要求自己写了个爬虫。2.0版本完成了!完善了生成pdf的功能,可根据图片比例自动调节大小,防止超出页面范围,增加了序号...
    99+
    2024-04-02
  • 怎么用Python爬虫公众号文章和链接
    这篇文章主要讲解了“怎么用Python爬虫公众号文章和链接”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Python爬虫公众号文章和链接”吧!抓包我们需要通过抓包提取公众号文章的请求的...
    99+
    2023-06-16
  • Python 获取文件夹下所有文件
    前言 使用Python获取文件夹下的所有文件时,存在多种方式。 1. os.listdir os.listdir:参数为文件夹路径,可以返回文件夹下的所有子文件夹、文件名称。 示例: import ...
    99+
    2023-08-31
    python 开发语言
  • 使用Java怎么对微信公众号批量获取
    今天就跟大家聊聊有关使用Java怎么对微信公众号批量获取,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。首先为代理服务器安装证书,anyproxy默认不解析https链接,安装证书后就...
    99+
    2023-05-30
    java 微信公众号
  • jspXCMS怎么获取栏目及其子栏目下所有的文章
    本文小编为大家详细介绍“jspXCMS怎么获取栏目及其子栏目下所有的文章”,内容详细,步骤清晰,细节处理妥当,希望这篇“jspXCMS怎么获取栏目及其子栏目下所有的文章”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧...
    99+
    2023-06-26
  • Python实现快速保存微信公众号文章中的图片
    目录一、实现效果(以槿泉壁纸为例)二、实现过程三、源码四、Python正则表达式匹配日期与时间一、实现效果(以槿泉壁纸为例) 二、实现过程 1.新建一个link文本,将需要下...
    99+
    2024-04-02
  • 利用Python获取文件夹下所有文件实例代码
    目录前言1. os.listdir2. os.walk3. glob.glob附:Python获取指定目录下的文件夹名列表和文件名列表总结前言 使用Python获取文件夹下的所有文件...
    99+
    2023-01-04
    python读取所有文件 python读取所有文件 python获取文件夹文件列表
  • Python怎么实现快速保存微信公众号文章中的图片
    本文小编为大家详细介绍“Python怎么实现快速保存微信公众号文章中的图片”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python怎么实现快速保存微信公众号文章中的图片”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知...
    99+
    2023-07-02
  • 怎么使用Golang递归获取目录下所有文件
    这篇文章主要讲解了“怎么使用Golang递归获取目录下所有文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用Golang递归获取目录下所有文件”吧!1.问题如果我想获取一个目录下的所...
    99+
    2023-07-05
  • 微信公众号开发中使用Java如何实现获取用户的信息
    微信公众号开发中使用Java如何实现获取用户的信息?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。首先需要到微信网站去设置一下,我是直接用的微信测试号。        接口配...
    99+
    2023-05-31
    java 微信公众号 用户信息
  • java如何获取文件夹下的所有文件名
    可以使用Java的File类来获取文件夹下的所有文件名。以下是一个示例代码: import java.io.File; publi...
    99+
    2024-04-02
  • Python获取当前目录下所有文件的六种方法
    os模块中的listdir()函数 import os# 当前目录dir_path = '/path/to/current/directory'# 获取当前目录下的所有文件files = [os.pa...
    99+
    2023-08-31
    python 数学建模 开发语言
  • Python中获取指定目录下所有文件名的方法
    在《Python中文件名和路径的操作》中提到,os模块中的函数可以对文件进行操作。通过递归以及os模块中提供的函数,可以获取指定目录下所有的文件名。 1 基本流程 通过递归获取指定目录下所有文件名的基本流程,如图1所示。 图1 基本流程 ...
    99+
    2023-09-01
    python 显示所有文件名 递归 os 处理文件
  • 利用C++实现获取文件夹下所有文件名
    查找文件需要一个结构体和几个函数。结构体为struct _finddata_t,函数为_findfirst、findnext和_findclose。 struct _finddata...
    99+
    2024-04-02
  • python pandas 获取Excel文件下所有的sheet名称,表格数据
    方法1: 一定要加sheet_name=None,才能读取出所有的sheet,否则默认读取第一个sheet,且获取到的keys是第一行的值 df = pd.read_excel('自己的Excel文件...
    99+
    2023-09-14
    python pandas excel
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作