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

获取公众号下所有文章的完整攻略可以分为以下几个步骤:

第一步:获取公众号的cookie

获取公众号下所有文章需要先获取公众号的cookie,方法如下:
1. 打开浏览器,访问公众平台
2. 登录自己的公众号
3. 登录成功后,在浏览器中按下F12键,打开开发者工具
4. 点击“Application”选项卡,找到“Cookies”项并点击
5. 在“Cookies”下找到mp.weixin.qq.com项,点击后找到wxuin和wxsid两个cookie,将其记录下来备用。

第二步:使用Python发起请求

使用Python的requests库向公众号文章首页发送请求,并带上获取到的cookie,获取公众号文章的信息,方法如下:

import requests

cookie = {'wxuin': 'xxxx', 'wxsid': 'xxxx'}
url = 'https://mp.weixin.qq.com/mp/profile_ext'
params = {'action': 'getmsg', 'count': '10', 'f': 'json', 'offset': '0', 'uin': 'xxx'}
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36', 
           'Cookie': ';'.join([key+'='+value for key,value in cookie.items()])}
response = requests.get(url=url, headers=headers, params=params)

其中,cookie是第一步获取到的公众号cookie,url是公众号文章首页的链接,params是请求参数,headers是请求头信息。

第三步:解析响应数据

使用json库解析第二步请求获取到的数据,提取出文章的标题、链接等信息,方法如下:

import json

json_data = json.loads(response.text)
article_data = json_data['general_msg_list']
article_data = json.loads(article_data)['list']
for article in article_data:
    title = article['app_msg_ext_info']['title']
    url = article['app_msg_ext_info']['content_url']
    print(title, url)

其中,json.loads()方法将响应数据中的json字符串转换为Python字典数据,article_data获取文章列表信息,遍历article_data,提取出每篇文章的标题和链接。

示例1:获取公众号“伊索”下的所有文章链接

import requests
import json

cookie = {'wxuin': 'xxxx', 'wxsid': 'xxxx'}
url = 'https://mp.weixin.qq.com/mp/profile_ext'
params = {'action': 'getmsg', 'count': '10', 'f': 'json', 'offset': '0', 'uin': 'xxx'}
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36', 
           'Cookie': ';'.join([key+'='+value for key,value in cookie.items()])}
response = requests.get(url=url, headers=headers, params=params)

json_data = json.loads(response.text)
article_data = json_data['general_msg_list']
article_data = json.loads(article_data)['list']
for article in article_data:
    title = article['app_msg_ext_info']['title']
    url = article['app_msg_ext_info']['content_url']
    print(title, url)

示例2:获取公众号“机器之心”近期发布的文章链接

import requests
import json

cookie = {'wxuin': 'xxxx', 'wxsid': 'xxxx'}
url = 'https://mp.weixin.qq.com/mp/profile_ext'
params = {'action': 'getmsg', 'count': '10', 'f': 'json', 'offset': '0', 'uin': 'xxx'}
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36', 
           'Cookie': ';'.join([key+'='+value for key,value in cookie.items()])}
response = requests.get(url=url, headers=headers, params=params)

json_data = json.loads(response.text)
article_data = json_data['general_msg_list']
article_data = json.loads(article_data)['list']
for article in article_data:
    if '机器之心' in article['app_msg_ext_info']['title']:
        title = article['app_msg_ext_info']['title']
        url = article['app_msg_ext_info']['content_url']
        print(title, url)

在示例2中,我们遍历了所有文章信息,并使用if语句筛选出包含“机器之心”关键字的文章信息。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用Python获取公众号下所有的文章 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • Python选课系统开发程序

    Python选课系统开发程序攻略 简介 本攻略为Python选课系统的开发过程,旨在帮助Python初学者了解如何通过Python语言开发一个完整的选课系统。 开发环境 首先,需要安装Python及相关开发环境,建议使用最新版Python3.x。另外,我们使用了Flask框架来进行Web开发,因此还需要安装Flask模块。 开发过程 步骤一:设计数据库 选课…

    python 2023年5月30日
    00
  • 小米5s微信跳一跳小程序python源码

    首先,解析“小米5s微信跳一跳小程序python源码”需要了解以下三个方面:微信小程序的工作原理、跳一跳小程序的游戏机制、Python程序的编写。 微信小程序与传统的应用程序不同,它是基于微信平台提供的API服务开发的。因此,在开发微信小程序时,需要使用微信公众平台开发者工具进行代码编写、调试、预览、上传等操作。 跳一跳小程序的游戏机制是,通过点击屏幕让小人…

    python 2023年5月23日
    00
  • 如何使用Python获取MySQL中的表的行数?

    要使用Python获取MySQL中的表的行数,可以使用Python的内置模块sqlite3或第三方库mysql-connector-python。以下是使用mysql-connector-python在MySQL中获取表的行数的完整攻略: 连接 要连接到MySQL,需要提供MySQL的主机、用户名、和密码。可以使用以下代码连接: mysql.connecto…

    python 2023年5月12日
    00
  • 如何使 fetch 方法返回 INTEGER 列的 int 值而不是字符串 Python sqlite?

    【问题标题】:How to make fetch methods return int values for INTEGER columns instead of strings Python sqlite?如何使 fetch 方法返回 INTEGER 列的 int 值而不是字符串 Python sqlite? 【发布时间】:2023-04-04 11:44…

    Python开发 2023年4月6日
    00
  • 不需要用到正则的Python文本解析库parse

    以下是“不需要用到正则的Python文本解析库parse”的完整攻略: 一、问题描述 在Python中,我们经常需要解析文本数据。通常情况下,我们会使用正则表达式来解析文本数据。但是,正则表达式的语法比较复杂,而且容易出错。本文将介绍一种不需要用到正则表达式的Python文本解析库parse,它可以帮助我们更方便地解析文本数据。 二、解决方案 2.1 使用P…

    python 2023年5月14日
    00
  • pip报错“ModuleNotFoundError: No module named ‘pip._vendor.requests.adapters’”怎么处理?

    当使用pip安装Python包时,可能会遇到“ModuleNotFoundError: No module named ‘pip._vendor.requests.adapters’”错误。这个错误通常是由以下原因之一引起的: pip版本过低:如果pip版本过低,则可能会出现此错误。在这种情况下,需要升级pip版本。 pip安装文件损坏:如果pip安装文件损…

    python 2023年5月4日
    00
  • 基于python list对象中嵌套元组使用sort时的排序方法

    在Python中,可以使用sort()方法对列表进行排序。当列表中的元素是元组时,sort()方法默认按照元组中第一个元素的大小进行排序。如果第一个元素相同,则按照第二个元素大小进行排序,以此类推。下面是一个示例,演示了如何对包含元组的列表进行排序: # 对包元组的列表进行排序 lst = [(3, 2), (1, 4), (2, 3), (1, 2)] l…

    python 2023年5月13日
    00
  • Python 实现大整数乘法算法的示例代码

    下面是详细讲解“Python实现大整数乘法算法的示例代码”的完整攻略,包括算法原理、Python实现和两个示例说明。 算法原理 大数乘法算法是指对于两大整数,采用分治法的思想,将其分别拆分成高位和低位两部分,然后递归地计算出们的乘积,最后将结果合并得到最终的乘积。具体步骤如下: 将两个大整数分别拆成高位和低位两部分; 递归地计算出高位和低位的乘积; 将高位和…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部