python爬取股票历史价格
时间: 2024-05-26 09:08:55 浏览: 282
Python可以使用第三方库requests和BeautifulSoup来爬取网页数据,并使用pandas库进行数据处理和分析。具体步骤如下:
1. 安装必要的第三方库:requests、BeautifulSoup和pandas。
2. 使用requests库获取目标网页的HTML源代码。
3. 使用BeautifulSoup库解析HTML源代码,提取所需数据。可以通过Chrome浏览器的开发者工具查看HTML源代码,确定需要提取的元素。
4. 将提取到的数据存储到pandas的DataFrame中。
5. 对DataFrame进行必要的数据清洗和处理,比如将字符串转换为数字类型等。
6. 可以使用matplotlib库进行可视化分析,绘制股票历史价格走势图等。
以下是示例代码,供参考:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
# 设置请求头
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
# 股票代码
stock_code = '600519'
# 构造URL
url = f'https://finance.sina.com.cn/realstock/company/{stock_code}/hisdata/klc_kl.shtml'
# 发送请求
response = requests.get(url, headers=headers)
# 解析HTML源代码
soup = BeautifulSoup(response.text, 'html.parser')
# 获取表格数据
table = soup.find('table', class_='datatbl')
rows = table.find_all('tr')
# 将表格数据存储到DataFrame中
data = []
for row in rows[1:]:
cols = row.find_all('td')
cols = [col.text.strip() for col in cols]
data.append(cols)
df = pd.DataFrame(data, columns=['日期', '开盘价', '最高价', '最低价', '收盘价', '涨跌额', '涨跌幅', '成交量(手)', '成交金额(万元)'])
# 数据清洗和处理
df['日期'] = pd.to_datetime(df['日期'], format='%Y-%m-%d')
df[['开盘价', '最高价', '最低价', '收盘价', '涨跌额', '涨跌幅', '成交量(手)', '成交金额(万元)']] = df[
['开盘价', '最高价', '最低价', '收盘价', '涨跌额', '涨跌幅', '成交量(手)', '成交金额(万元)']].apply(pd.to_numeric)
# 可视化分析
import matplotlib.pyplot as plt
plt.plot(df['日期'], df['收盘价'])
plt.xlabel('日期')
plt.ylabel('收盘价')
plt.title('股票历史价格走势图')
plt.show()
# 相关问题:
# 1. requests库是什么?
# 2. BeautifulSoup库是什么?
# 3. pandas库是什么?
# 4. 如何对DataFrame进行数据清洗和处理?
# 5. 如何使用matplotlib库绘制股票历史价格走势图?
阅读全文