炒股,肯定要看某个股票的相关新闻,这是最基础的线上调研。百度新闻相对比较全面,如何通过ChatGPT来自动获取某个股票的百度新闻报道呢?

ChatGPT炒股:自动获取某只股票最新新闻报道_excel表格

首先,在百度新闻搜索页面,观察翻页的规律:

第二页:

https://www.baidu.com/s?tn=news&rtt=4&bsst=1&cl=2&wd=%E8%B4%B5%E5%B7%9E%E8%8C%85%E5%8F%B0&medium=0&x_bfe_rqs=032000000000000000000000000000000000000000000008&x_bfe_tjscore=0.080000&tngroupname=organic_news&newVideo=12&goods_entry_switch=1&rsv_dl=news_b_pn&pn=10

第三页:

https://www.baidu.com/s?tn=news&rtt=4&bsst=1&cl=2&wd=%E8%B4%B5%E5%B7%9E%E8%8C%85%E5%8F%B0&medium=0&x_bfe_rqs=032000000000000000000000000000000000000000000008&x_bfe_tjscore=0.080000&tngroupname=organic_news&newVideo=12&goods_entry_switch=1&rsv_dl=news_b_pn&pn=20

查询参数wd表示搜索关键词,这里是贵州茅台。

查询参数pn表示分页的起始索引,第一个URL的pn值为10,第二个URL的pn值为20。在百度新闻搜索结果中,每个结果页面显示10条新闻,因此pn值以10为间隔递增。

然后,观察每页的新闻结构:

ChatGPT炒股:自动获取某只股票最新新闻报道_excel表格_02

都放在div元素中;

最后,定位新闻标题、新闻日期、来源等位置。

搞清楚后,就可以在ChatGPT中输入提示词如下:

写一段Python程序,具体步骤如下:

用户输入股票名称,获取这个名称,对其进行编码,编码值赋给变量:keywords;

打开网站:https://www.baidu.com/s?tn=news&rtt=4&bsst=1&cl=2&wd={keywords}&medium=0&x_bfe_rqs=032000000000000000000000000000000000000000000008&x_bfe_tjscore=0.080000&tngroupname=organic_news&newVideo=12&goods_entry_switch=1&rsv_dl=news_b_pn&pn=0,ppn参数值是从0到100,以10为间隔递增,对网站进行解析;

定位页面中所有class="result-op c-container xpath-log new-pmd" 的div元素,然后定位其中class="news-title-font_1xS-F" 的a元素,提取其aria-label值,去掉开头的“标题:”字符,写入excel表格第1列;提取a元素的href值,写入excel表格第5列;

定位class="c-color-gray2 c-font-normal c-gap-right-xsmall" 的span 元素,提取其aria-label值,去掉开头的“发布于:”字符,写入excel表格第2列;

定位class="c-font-normal c-color-text" 的span 元素,提取其aria-label值,去掉开头的“摘要 ” 写入excel表格第3列;

定位class="c-color-gray" 的span 元素,提取其aria-label值,去掉开头的“新闻来源:” ,写入excel表格第4列;

保存excel表格到F盘的{股票名称}.xlsx

注意:要有应对反爬虫的措施,比如每爬取一页内容后暂停10秒、构造请求头;

每一个步骤都要输出信息

ChatGPT炒股:自动获取某只股票最新新闻报道_excel表格_03

程序运行中输出的信息,说明运行正确。

ChatGPT炒股:自动获取某只股票最新新闻报道_excel表格_04

输出的excel表格内容如上。