前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ChatGPT炒股:自动批量下载特定主题的股票公告

ChatGPT炒股:自动批量下载特定主题的股票公告

作者头像
AIGC部落
发布2024-06-24 12:47:21
980
发布2024-06-24 12:47:21
举报
文章被收录于专栏:Dance with GenAI

很多财经网站、证券交易所等网站都有股票公告。有时候,我们需要从海量公告信息中查找特定信息。比如,查询所有股票2023年预计关联交易的内容,怎么自动批量下载呢?

下面以股转系统的新三板股票为例,来说明如何用ChatGPT编程下载。

首先,打开挂牌公司公告,网址是:https://www.neeq.com.cn/disclosure/announcement.html

输入:2023年日常性关联交易,然后点击查询,

可以看到requestURL是https://www.neeq.com.cn/disclosureInfoController/infoResult_zh.do?callback=jQuery331_1685664278031

Content-Type是:application/x-www-form-urlencoded; charset=UTF-8

说明这个页面的数据都是动态生成的,用常规静态页面的方法是无法获取到的。

点击response,可以看到动态生成的内容,是json格式

点击payload,可以看到这些动态参数是通过form data方式传递给网站服务器的

要获取这个网站内容,要告诉chatgpt网站的Request URL、Request headers、formdata 这些信息,然后发送post请求来获取网址数据,可以在ChatGPT里面输入提示词如下:

一个动态网页,其相关信息如下:

Request URL:

https://www.neeq.com.cn/disclosureInfoController/infoResult_zh.do?callback=jQuery331_16854

Request headers

Accept:

text/javascript, application/javascript, application/ecmascript, application/x-ecmascript, /; q=0.01

Accept-Encoding:

gzip, deflate, br

Accept-Language:

zh-CN,zh;q=0.9,en;q=0.8

Connection:

keep-alive

Content-Length:

538

Content-Type:

application/x-www-form-urlencoded; charset=UTF-8

Host:

www.neeq.com.cn

Origin:

https://www.neeq.com.cn

Referer:

https://www.neeq.com.cn/disclosure/announcement.html

Sec-Ch-Ua:

"Google Chrome";v="113", "Chromium";v="113", "Not-A.Brand";v="24"

Sec-Ch-Ua-Mobile:

?0

Sec-Ch-Ua-Platform:

"Windows"

Sec-Fetch-Dest:

empty

Sec-Fetch-Mode:

cors

Sec-Fetch-Site:

same-origin

User-Agent:

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

X-Requested-With:

XMLHttpRequest

formdata = 'noticeType%5B%5D=5&disclosureType%5B%5D=5&disclosureSubtype%5B%5D=&page=&companyCd=&isNewThree=1&keyword=2023+%E5%B9%B4%E6%97%A5%E5%B8%B8%E6%80%A7%E5%85%B3%E8%81%94%E4%BA%A4%E6%98%93&xxfcbj%5B%5D=3&hyType%5B%5D=&needFields%5B%5D=companyCd&needFields%5B%5D=companyName&needFields%5B%5D=disclosureTitle&needFields%5B%5D=disclosurePostTitle&needFields%5B%5D=destFilePath&needFields%5B%5D=publishDate&needFields%5B%5D=xxfcbj&needFields%5B%5D=destFilePath&needFields%5B%5D=fileExt&needFields%5B%5D=xxzrlx&siteId=1&sortfield=xxssdq&sorttype=asc'

写一段Python代码,发送POST请求,获取这个网页的数据

程序运行后,返回这样的字符串,其中有一段json数据,股票公告下载的地址就在json数据中。

要用程序批量下载PDF,需要首先要去掉开头和结尾的字符串,得到其中的json数据,然后从json数据中提取destFilePath(PDF文件下载地址)和disclosureTitle(PDF文件标题)内容,然后让程序自动下载就好了。

经过多次尝试,构建ChatGPT的提示词如下:

从一个动态网页获取了网页数据response.text,

去掉开头的字符串:jQuery331_1685491901352([{"listInfo":{"content":[,去掉结尾的字符串:,"firstPage":true,"lastPage":false,"number":0,"numberOfElements":20,"size":20,"sort":null,"totalElements":796,"totalPages":40},"status":0}]) ,只保留中间的json内容;

然后从json文件中提取出所有的destFilePath和disclosureTitle内容;

在所有的destFilePath内容前加上 https://www.neeq.com.cn,构建出一个PDF文件下载地址,以disclosureTitle作为PDF文件标题名,注意:要用正则表达式将文件名中[]、:这样的特殊符号替换为下划线;

下载所有PDF文件,保存到电脑d盘“关联交易”文件夹

注意:需要在代码中添加应对反爬虫的一些措施,比如添加请求头、延迟请求等

然后,再通过response_text = response.text 把两段代码连接起来。就构成一个完整的下载程序。

运行程序,成功下载所有PDF文件。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-06-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Dance with GenAI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档