嗨,大家好,欢迎回到我的Python专栏!今天我们将讨论一个话题——如何使用Python自动抓取股票价格数据,以便我们能更好地跟踪股票市场的波动。

第一步 准备工作
首先,让我们来谈谈需要做哪些准备工作。您需要安装Python以及easyquotation库和pandas库,可以使用pip install easyquotation命令等安装库。

第二步 选择行情
接下来,我们需要选择您感兴趣的股票行情,可以选择新浪 ['sina'] 或腾讯 ['tencent', 'qq']等。
# 初始化quotation对象
quotation = easyquotation.use('sina') # 使用新浪数据源
第三步 编写Python代码
这是最有趣的部分!使用Python编写一个小脚本,让它帮助我们爬取股票价格数据。不用担心,完整代码如下,让您一目了然。
获取所有股票行情
代码
import easyquotation
import pandas as pd
# 初始化quotation对象
quotation = easyquotation.use('sina') # 使用新浪数据源
# 获取所有股票的行情数据
all_stock_data = quotation.market_snapshot(prefix=True)
# 创建一个空的DataFrame
all_stock_df = pd.DataFrame(columns=['股票名', '竞买价', '竞卖价', '现价', '开盘价', '昨日收盘价', '今日最高价', '今日最低价', '交易股数', '交易金额', '卖一价', '卖一量', '卖二价', '卖二量', '买一价', '买一量', '买二价', '买二量', '日期', '时间'])
# 将数据添加到DataFrame中
for stock_code, stock_info in all_stock_data.items():
stock_data = [stock_info['name'], stock_info['buy'], stock_info['sell'], stock_info['now'], stock_info['open'], stock_info['close'], stock_info['high'], stock_info['low'], stock_info['turnover'], stock_info['volume'], stock_info['ask1'], stock_info['ask1_volume'], stock_info['ask2'], stock_info['ask2_volume'], stock_info['bid1'], stock_info['bid1_volume'], stock_info['bid2'], stock_info['bid2_volume'], stock_info['date'], stock_info['time']]
all_stock_df = all_stock_df._append(pd.Series(stock_data, index=all_stock_df.columns), ignore_index=True)
# 保存DataFrame到Excel文件
all_stock_df.to_excel('all_stocks_data.xlsx', index=False)
print(all_stock_df.head()) # 打印前几行数据

代码解释
这段代码执行以下操作:
1. 导入必要的库:代码首先导入了两个库,`easyquotation` 和 `pandas`。`easyquotation` 用于获取股票行情数据,而 `pandas` 用于数据处理和创建DataFrame。
2. 初始化 `quotation` 对象:使用 `easyquotation.use('sina')` 初始化了 `quotation` 对象,指定了数据源为新浪,以便获取股票行情数据。
3. 获取所有股票的行情数据:使用 `quotation.market_snapshot(prefix=True)` 获取了所有股票的行情数据。这个方法会返回一个包含所有股票数据的字典,其中每个键是股票代码,对应的值是该股票的行情信息。
4. 创建一个空的DataFrame:使用 `pd.DataFrame` 创建了一个名为 `all_stock_df` 的空DataFrame,定义了该DataFrame的列名,包括股票名、竞买价、竞卖价、现价、开盘价、昨日收盘价、今日最高价、今日最低价、交易股数、交易金额、卖一价、卖一量、卖二价、卖二量、买一价、买一量、买二价、买二量、日期和时间。
5. 将数据添加到DataFrame中:通过遍历 `all_stock_data` 中的股票数据,将每支股票的信息提取出来,存储在名为 `stock_data` 的列表中。然后,使用 `pd.Series` 创建一个包含这些数据的Series,并使用 `all_stock_df._append()` 方法将这个Series添加到 `all_stock_df` 中,同时将 `ignore_index=True` 用于重置索引。
6. 保存DataFrame到Excel文件:最后,使用 `all_stock_df.to_excel()` 方法将整个DataFrame保存到名为 `all_stocks_data.xlsx` 的Excel文件中,同时使用 `index=False` 防止将默认索引列保存到Excel文件。
7. 打印前几行数据:使用 `print(all_stock_df.head())` 打印DataFrame的前几行数据,以供查看。
这段代码的主要功能是获取所有股票行情数据并将其存储在一个结构化的Excel文件中,以便后续分析和处理。
订阅解锁TA的全部专属内容