现在很多免费的股票数据库,比如akshare,其实是从新浪财经或者东方财富网站上爬取下来的。如果能直接从新浪财经或者东方财富网站上爬取数据,可以获取更全面更即时的信息。
可以在ChatGPT中输入提示词如下:
写一段Python代码,用selenium库来爬取网页上的股票数据,具体步骤如下:
用户输入股票名称,在F盘的“全部A股股票名称20230703.xlsx”表格中查找出对应的股票代码,然后股票代码转换一下,转换示例:601012.SZ转成sh601012,股票代码设为变量stock;
打开网站:https://finance.sina.com.cn/realstock/company/{stock}/nc.shtml;
获取 id="price" 的div元素内容,设为变量stockprice,输出:{stock}的当前股价为{stockprice};
获取id="hqTime"的div元素内容,设为变量stockdate,输出:股价获取时间为{stockdate};
获取 xpath= //*[@id="hqDetails"]/table/tbody/tr[1]/td[2]的td内容,设为变量stockvolume,输出:{stock}的成交量为{stockvolume};
获取 xpath= //*[@id="hqDetails"]/table/tbody/tr[2]/td[2]的td内容,设为变量stockmm,输出:{stock}的成交额为{stockmm};
获取 xpath= //*[@id="hqDetails"]/table/tbody/tr[2]/td[3]的td内容,设为变量stockturn,输出:{stock}的换手率为{stockturn};
运行后新浪财经网站打开错误,是股票代码没有转换对。
告诉ChatGPT让其修改:convert_stock_code(code) 转换函数不对,还要去掉代码尾部的.SZ或者.SH
运行之后又报错,把错误信息输入ChatGPT让其查找改错:之前的代码中未考虑到可能出现的异常情况。修改后的代码,添加了异常处理以避免程序崩溃,并对get_stock_info()函数进行了相应调整。
继续报错,继续让ChatGPT去查找错误并修改:将find_element_by_id替换为find_element方法,并传入了正确的参数。
随后运行正确:
成功获取实时股价信息: