[英]Python scrape table from website?
我想在treasury.gov 网站上获取所有可用的国债收益率。
我将如何获取此信息? 我假设我必须使用 BeautifulSoup 或 Selenium 或类似的东西(最好是 BS4)。 我最终想把这些数据放在 Pandas DataFrame 中。
这是您可以使用 requests 和 beautifulsoup 获取表中数据的一种方法
import pandas as pd
import requests
from bs4 import BeautifulSoup
url = 'https://www.treasury.gov/resource-center/data-chart-center/interest-rates/Pages/TextView.aspx?data=yieldAll'
r = requests.get(url)
html = r.text
soup = BeautifulSoup(html)
table = soup.find('table', {"class": "t-chart"})
rows = table.find_all('tr')
data = []
for row in rows[1:]:
cols = row.find_all('td')
cols = [ele.text.strip() for ele in cols]
data.append([ele for ele in cols if ele])
result = pd.DataFrame(data, columns=['Date', '1 Mo', '2 Mo', '3 Mo', '6 Mo', '1 Yr', '2 Yr', '3 Yr', '5 Yr', '7 Yr', '10 Yr', '20 Yr', '30 Yr'])
print(result)
在 2022 年 6 月 2 日实施的“所有”时间段内更改 CSV 下载后,以下另一种下载利率的方法。您可以使用历史存档选项下载历史数据并运行此代码来更新数据。
import pandas as pd
import requests
csv_url = 'https://home.treasury.gov/resource-center/data-chart-center/interest-rates/daily-treasury-rates.csv/2022/all?field_tdr_date_value=2022&type=daily_treasury_yield_curve&page&_format=csv'
req = requests.get(csv_url, verify=False)
url_content = req.content
csv_file = open('2022_rates.csv', 'wb')
csv_file.write(url_content)
csv_file.close()
rates_2022 = pd.read_csv('2022_rates.csv')
rates_2022
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.