[英]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.