为了解决这个问题,我们需要一个能够定期抓取金价数据的爬虫,并将抓取的数据以CSV格式保存。以下是一个简单的Python爬虫示例,它使用requests
库获取数据,pandas
库来处理数据,并使用time
库来实现定时任务。
首先,确保安装所需的库:
pip install requests pandas
以下是爬虫的示例代码:
import requests
import pandas as pd
from time import sleep
# 金价数据的API URL
api_url = 'http://api.fixer.io'
# 定义一个函数来抓取数据
def fetch_exchange_rates(url):
response = requests.get(url)
if response.status_code == 200:
return response.json()
else:
return None
# 定义一个函数来将数据保存到CSV
def save_to_csv(data, filename):
df = pd.DataFrame.from_dict(data, orient='index').transpose()
df.to_csv(filename, index=False)
# 主程序
if __name__ == '__main__':
while True:
# 获取当前金价数据
data = fetch_exchange_rates(api_url)
if data:
# 保存到CSV文件,文件名包含当前时间
save_to_csv(data, f'exchange_rates_{pd.Timestamp.now():%Y-%m-%d_%H}.csv')
print(f'Data saved at {pd.Timestamp.now()}.')
else:
print('Failed to fetch data.')
# 暂停一小时继续抓取
sleep(3600) # 3600秒等于一小时
这个脚本会每小时抓取一次金价数据,并将其保存到CSV文件中。你可以通过修改api_url
变量来指定不同的数据源,只要该API提供JSON格式的响应。这个脚本使用了time.sleep()
函数来实现每小时的定时抓取。