使用python,在中国银行外汇牌价网,同时获取美元、日元、港币、欧元、卢布、英镑、澳元、瑞士法郎、新加坡元9种货币每天最接近15:00的中行折算价,获取范围为12个月内每一天,存入excel中并保存在桌面
时间: 2023-05-19 21:07:18 浏览: 389
Currency_Convertor:使用python的货币转换器
好的,这个问题可以回答。您可以使用Python的requests和BeautifulSoup库来爬取中国银行外汇牌价网的数据,然后使用pandas库将数据存入Excel文件中。以下是一个示例代码:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
from datetime import datetime, timedelta
# 设置需要爬取的货币种类和日期范围
currencies = ['USD', 'JPY', 'HKD', 'EUR', 'RUB', 'GBP', 'AUD', 'CHF', 'SGD']
start_date = datetime.now() - timedelta(days=365)
end_date = datetime.now()
# 创建一个空的DataFrame来存储数据
df = pd.DataFrame(columns=['Date'] + currencies)
# 循环遍历每一天
current_date = start_date
while current_date <= end_date:
# 构造URL并发送请求
url = f'https://srh.bankofchina.com/search/whpj/search_cn.jsp?erectDate={current_date.strftime("%Y-%m-%d")}¬hing={current_date.strftime("%Y-%m-%d")}&pjname=1316'
response = requests.get(url)
# 解析HTML并提取数据
soup = BeautifulSoup(response.text, 'html.parser')
table = soup.find('table', class_='BOC_main publish')
if table:
row = [current_date.strftime('%Y-%m-%d')]
for currency in currencies:
td = table.find('td', text=currency)
if td:
row.append(td.find_next_sibling('td').text.strip())
else:
row.append('')
df.loc[len(df)] = row
# 增加一天
current_date += timedelta(days=1)
# 将数据保存到Excel文件中
df.to_excel('~/Desktop/forex.xlsx', index=False)
```
请注意,这个代码仅供参考,具体实现可能需要根据实际情况进行调整。
阅读全文