利用爬虫获取至少三个月的股票成交数据代码
时间: 2023-05-30 18:04:44 浏览: 185
抓取股票成交数据需要先确定要抓取哪个股票交易市场(如A股、港股、美股等),以及要抓取哪个股票的数据。此外还要确定抓取的时间范围和数据维度(如开盘价、收盘价、最高价、最低价、成交量、成交额等)。
以下是一个示例代码,可用于抓取中国A股市场某只股票最近三个月的开盘价、收盘价、最高价、最低价、成交量和成交额数据:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
# 股票代码和要抓取的时间范围
code = '600519' # 茅台股票代码
start_date = '2021-01-01' # 起始日期
end_date = '2021-03-31' # 结束日期
# 构造URL
url = f'http://quotes.money.163.com/trade/lsjysj_{code}.html?start={start_date}&end={end_date}'
# 发送请求并解析HTML
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# 获取表格数据
table = soup.find('table', class_='table_bg001 border_box limit_sale')
rows = table.find_all('tr')
# 解析表格数据
data = []
for row in rows[1:]:
cells = row.find_all('td')
date = cells[0].text.strip() # 日期
open_price = cells[1].text.strip() # 开盘价
high_price = cells[2].text.strip() # 最高价
low_price = cells[3].text.strip() # 最低价
close_price = cells[4].text.strip() # 收盘价
volume = cells[5].text.strip() # 成交量
amount = cells[6].text.strip() # 成交额
data.append([date, open_price, high_price, low_price, close_price, volume, amount])
# 转换成DataFrame格式并输出到CSV文件
df = pd.DataFrame(data, columns=['日期', '开盘价', '最高价', '最低价', '收盘价', '成交量', '成交额'])
df.to_csv(f'{code}_{start_date}_{end_date}.csv', index=False)
```
该代码使用了Python的requests库和BeautifulSoup库来发送HTTP请求和解析HTML页面。在解析HTML页面时,使用了CSS选择器来定位表格元素,并对表格数据进行了解析和格式化。
注意,该代码只适用于中国A股市场的股票成交数据抓取,其他市场和股票需要根据实际情况进行调整。同时,为了避免过于频繁的数据抓取导致被封IP,建议使用IP代理池和定时任务来稳定地抓取数据。
阅读全文