炒股,肯定要看某个股票的相关新闻,这是最基础的线上调研。百度新闻相对比较全面,如何通过ChatGPT来自动获取某个股票的百度新闻报道呢?
首先,在百度新闻搜索页面,观察翻页的规律:
第二页:
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为间隔递增。
然后,观察每页的新闻结构:
都放在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秒、构造请求头;
每一个步骤都要输出信息
程序运行中输出的信息,说明运行正确。
输出的excel表格内容如上。