ChatGPT炒股:爬取股票官方微信公众号的新闻资讯

上市公司的微信公众号,现在已经成为官网之外最重要的官方信息发布渠道。有些不会在股票公告中发布的消息,也会在微信公众号进行发布。所以,跟踪持仓股票的公众号信息,非常重要。

下面,以贝特瑞的官方公众号“贝特瑞新材料”为例,来说明如何利用ChatGPT 来爬取公司的公众号内容。

首先,要登陆微信公众号平台。可参照之前的文章《零代码编程:用ChatGPT自动登陆微信公众号后台》

然后点击:图文信息

点击超链接,选择其他公众号:

输入贝特瑞新材料,就可以看到公众号的全部历史文章了:

按F12键,可以看到贝特瑞新材料历史文章的源代码:

历史文章总共有46页:

第1页URL:https://mp.weixin.qq.com/cgi-bin/appmsg?action=list_ex&begin=0&count=5&fakeid=MzI0NjY5MjYyMg==&type=9&query=&token=1796751509&lang=zh_CN&f=json&ajax=1

第2页URL:https://mp.weixin.qq.com/cgi-bin/appmsg?action=list_ex&begin=5&count=5&fakeid=MzI0NjY5MjYyMg==&type=9&query=&token=1796751509&lang=zh_CN&f=json&ajax=1

第46页URL:

https://mp.weixin.qq.com/cgi-bin/appmsg?action=list_ex&begin=225&count=5&fakeid=MzI0NjY5MjYyMg==&type=9&query=&token=1796751509&lang=zh_CN&f=json&ajax=1

参数begin表示开始的位置索引,从0开始计数,每页递增5。例如,第1页的begin=0,第2页的begin=5,第46页的begin=225。

参数count表示每页的数量,固定为5。每页显示5条数据。

参数fakeid表示公众号的唯一标识,固定不变。

参数type表示文章的类型,这里固定为9。

参数query表示搜索关键词,这里为空。

参数token表示访问令牌,这个经常会变,在network-payload中获取:

参数lang表示语言,这里为中文。

参数f表示返回结果的格式,这里固定为json。

参数ajax表示是否使用Ajax加载,这里为1表示使用Ajax加载。

综上,URL中的begin参数和fakeid参数是根据页数和公众号的唯一标识来确定的,其他参数基本固定。我们可以根据这些规律生成不同页数的URL。

可以在ChatGPT中输入提示词了:

写一段Python代码,用selenium实现自动登陆微信公众平台然后爬取数据的任务,具体步骤如下:

用webdriver打开chrome浏览器;

打开https://mp.weixin.qq.com/

定位xpath=//*[@id="header"]/div[2]/div/div/div[2]/a的a元素,点击;

定位type="text" 的input元素,输入:你的账号;

定位type="password"的input元素,输入:你的密码;

定位xpath=//*[@id="header"]/div[2]/div/div/div[1]/form/div[3]/label的lable元素,选中;

定位class="btn_login"的a元素,点击;

延迟30秒;

打开微信公众号每页的URL:

https://mp.weixin.qq.com/cgi-bin/appmsg?action=list_ex&begin={0}&count=5&fakeid=MzI0NjY5MjYyMg==&type=9&query=&token={1871}&lang=zh_CN&f=json&ajax=1,参数begin的数值从0开始计数,每页递增5,一直到225;

参数token的值为:你的token,

每页URL的User-Agent为:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36

Cookie为:你的cookie

获取每页的响应内容,解析json数据,打印输出;

提取其中"app_msg_list"的全部json数据,打印输出;

然后提取"app_msg_list"其中的 "link"、"title"字段,保存到F盘的“贝特瑞新材料公众号.xlsx”;

注意:每一步都输出信息

使用显式等待来等待元素的出现;

每爬取1页内容后,暂停10秒;

程序运行后,显示的json数据:

保存到Excel表格中的微信公众号URL和标题:

随机打开一个微信文章URL,显示正常:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/51560.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

beego验证码(配置到redis存储)

我们定义一个全局变量用于存储redis连接 RedisDb *redis.Client 然后连接 redis 这一块我们将redis信息写到app.conf文件里了: redisDb 1 redisAddr "127.0.0.1:6379" redisPwd "" package initializeimport ("beego_learning/global&q…

经典的数组和指针结合的OJ题

一、合并两个有序数组 leetcode链接 题目描述: 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递…

[Linux]进程控制详解!!(创建、终止、等待、替换)

hello,大家好,这里是bang___bang_,在上两篇中我们讲解了进程的概念、状态和进程地址空间,本篇讲解进程的控制!!包含内容有进程创建、进程等待、进程替换、进程终止!! 附上前2篇文章…

七大经典比较排序算法

1. 插入排序 (⭐️⭐️) 🌟 思想: 直接插入排序是一种简单的插入排序法,思想是是把待排序的数据按照下标从小到大,依次插入到一个已经排好的序列中,直至全部插入,得到一个新的有序序列。例如:…

Vue3搭建启动

Vue3搭建&启动 一、创建项目二、启动项目三、配置项目1、添加编辑器配置文件2、配置别名3、处理sass/scss4、处理tsx(不用的话可以不处理) 四、添加Eslint 一、创建项目 npm create vite 1.project-name 输入项目名vue3-vite 2.select a framework 选择框架 3.select a var…

【Spring】聊聊Spring如何解决的循环依赖以及三级缓存

循环依赖是什么 在平时的面试中,只要问到Spring,那么大概率肯定会问什么是循环依赖,Sping是如何解决循环依赖的。以及三级缓存机制是什么。所以为了从根本上解决这个问题,本篇主要详细介绍一下循环依赖的问题。 Spring Bean初始…

谷粒商城第七天-商品服务之分类管理下的分类的拖拽功能的实现

目录 一、总述 1.1 前端思路 1.2 后端思路 二、前端实现 2.1 判断是否能进行拖拽 2.2 收集受影响的节点,提交给服务器 三、后端实现 四、总结 一、总述 这个拖拽功能对于这种树形的列表,整体的搬迁是很方便的。但是其实现却并不是那么的简单。 …

Android SDK 上手指南||第一章 环境需求||第二章 IDE:Eclipse速览

第一章 环境需求 这是我们系列教程的第一篇,让我们来安装Android的开发环境并且把Android SDK运行起来! 介绍 欢迎来到Android SDK入门指南系列文章,如果你想开始开发Android App,这个系列将从头开始教你所须的技能。我们假定你…

Vue2封装自定义全局Loading组件

前言 在开发的过程中,点击提交按钮,或者是一些其它场景总会遇到Loading加载框,PC的一些UI库也没有这样的加载框,无法满足业务需求,因此可以自己自定义一个,实现过程如下。 效果图 如何封装? 第…

MySQL | 常用命令示例

MySQL | 常用命令示例 一、启停MySQL数据库服务二、连接MySQL数据库三、创建和管理数据库四、创建和管理数据表五、数据备份和恢复六、查询与优化 MySQL是一款常用的关系型数据库管理系统,广泛应用于各个领域。在使用MySQL时,我们经常需要编写一些常用脚…

Qt之切换语言的方法(传统数组法与Qt语言家)

http://t.csdn.cn/BVigB 传统数组法: 定义一个字符串二维数组, QString weekStr[2][7] {"星期一","星期二","星期三","星期四","星期五","星期六","星期日",\ "Monday&…

自己创建的类,其他类中使用错误

说明:自己创建的类,在其他类中创建,报下面的错误(Cannot resolve sysmbol ‘Redishandler’); 解决:看下是不是漏掉了包名 加上包名,问题解决;

云计算——云计算与虚拟化的关系

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​ 目录 前言 一.虚拟化 1.什么是虚拟化 2.虚拟化技术作用 二.云计算与虚拟化的关系 三.虚…

[STL]stack和queue使用介绍

[STL]stack和queue使用介绍 文章目录 [STL]stack和queue使用介绍stack使用介绍stack介绍构造函数empty函数push函数top函数size函数pop函数 queue使用介绍queue介绍构造函数empty函数push函数front函数back函数size函数pop函数 deque介绍 stack使用介绍 stack介绍 stack是一种…

Tensorflow报错protobuf requires Python ‘>=3.7‘ but the running Python is 3.6.8

报错信息 仔细观察下方命令后,可得运行:python -m pip install --upgrade pip即可 完成后再次执行性安装命令 成功!!!

爆肝!《Java 权威面试指南(阿里版)》,冲击“金九银十”有望了

这次金九银十你准备好了吗? 莫慌莫慌,“面试造火箭,工作拧螺丝” 说得不无道理,偶然从朋友那得到的这份 Alibaba 内部疯传《Java 权威面试指南(阿里版)》堪称精品,或可能助你一臂之力&#xff…

Doris注意事项,Doris部署在阿里云,写不进去数据

1.Doris官网 Doris官网https://doris.apache.org/ 2.根本原因 本地idea访问FE,FE会返回BE的地址,但是在服务器上通过ip addr查看,发现只有局域网IP,所以FE返回了局域网的IP,导致idea连接不上BE 3.解决办法 重写Ba…

Jmeter并发测试

基本步骤 1、新建线程组 测试计划右键——>添加——>线程(用户)——>线程组 2、 添加HTTP请求 线程组右键——>添加——>取样器——>HTTP请求 3、 添加HTTP信息头管理器 线程组右键——>添加——>配置元件——>HTTP信息头…

ChatGPT炒股:自动批量提取股票公告中的表格并合并数据

在很多个股票公告中,都有同样格式的“日常性关联交易”的表格,如何合并到一张Excel表格中呢? 首先,在ChatGPT中输入提示词: 写一段Python代码: F盘文件夹“新三板 2023年日常性关联交易20230704”中很多…

2023 7-30

题目1 lee2331.计算布尔二叉树的值 对于一棵完整的二叉树(每一个根节点孩子的个数不是0就是2) 叶子节点是1或者是0,其中1代表true,0代表false非叶子节点的值是2或者3,其中2代表逻辑或or,3代表逻辑与and计算方式 如果节点是个叶子节点,那么节点的 值 为它本身,即 True 或者…