python 爬取美元汇率 http://www.boc.cn/sourcedb/whpj/
时间: 2023-12-25 18:30:16 浏览: 299
以下是使用Python爬取美元汇率的示例代码:
```python
import requests
from bs4 import BeautifulSoup
# 定义要爬取的网址
url = "http://www.boc.cn/sourcedb/whpj/"
# 发送请求并获取响应对象
response = requests.get(url)
# 使用BeautifulSoup解析网页内容
soup = BeautifulSoup(response.text, 'lxml')
# 查找数据所在的表格
table = soup.find_all('table')[1]
# 获取表格中的所有行
rows = table.find_all('tr')
# 遍历每一行,提取汇率数据
for row in rows:
# 获取每一行中的所有单元格
cells = row.find_all('td')
# 判断是否为有效的汇率数据行
if len(cells) == 8:
# 提取汇率数据
currency = cells[0].text.strip() # 货币名称
exchange_rate = cells[5].text.strip() # 现汇买入价
print(currency, exchange_rate)
```
相关问题
1. 查找当前外币与人民币的汇率,编写程序将其它货币转换为对应的人民币。 如: 213$ → 1385.991¥ 213€ → 1393.751¥
您好,要实现该功能,您需要先获取外币与人民币的汇率信息,这里我提供两种获取方式:
1. 使用第三方API获取汇率信息,比如 Open Exchange Rates API(https://openexchangerates.org/),需要注册账号并获取 API Key。
2. 直接从官方网站获取汇率信息,比如中国银行外汇牌价页面(https://www.boc.cn/sourcedb/whpj/)。
下面是一个使用中国银行外汇牌价页面获取汇率信息,并将外币转换为人民币的 Python 代码示例:
```python
import requests
from bs4 import BeautifulSoup
# 获取汇率信息
res = requests.get('https://www.boc.cn/sourcedb/whpj/')
soup = BeautifulSoup(res.content, 'html.parser')
table = soup.find_all('table')[1]
rows = table.find_all('tr')[1:]
rates = {}
for row in rows:
cols = row.find_all('td')
currency = cols[0].text.strip()
rate = float(cols[5].text.strip())
rates[currency] = rate
# 将外币转换为人民币
def convert_currency(amount, currency):
if currency not in rates:
return None
rate = rates[currency]
return round(amount * rate, 3)
# 测试
print(convert_currency(213, 'USD')) # 1385.991
print(convert_currency(213, 'EUR')) # 1393.751
```
上述代码使用 requests 库和 BeautifulSoup 库获取中国银行外汇牌价页面的汇率信息,并将其存储在字典 rates 中。然后定义 convert_currency 函数,该函数接受一个金额和货币类型作为参数,如果货币类型在 rates 中存在,则返回将金额转换为人民币的结果,否则返回 None。最后进行测试,将 213 美元和 213 欧元转换为人民币。
阅读全文