簡體   English   中英

Python 從網站上抓取表格?

[英]Python scrape table from website?

我想在treasury.gov 網站上獲取所有可用的國債收益率。

https://www.treasury.gov/resource-center/data-chart-center/interest-rates/Pages/TextView.aspx?data=yieldAll

我將如何獲取此信息? 我假設我必須使用 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

試圖從網站上抓取一張桌子<div tags< div><div id="text_translate"><p> 我正在嘗試刮這張桌子<a href="https://momentranks.com/topshot/account/mariodustice?limit=250" rel="nofollow noreferrer">https://momentranks.com/topshot/account/mariodustice?limit=250</a></p><p> 我試過這個:</p><pre> import requests from bs4 import BeautifulSoup url = 'https://momentranks.com/topshot/account/mariodustice?limit=250' page = requests.get(url) soup = BeautifulSoup(page.content, 'lxml') table = soup.find_all('table', attrs={'class':'Table_tr__1JI4P'})</pre><p> 但它返回一個空列表。 有人可以就如何解決這個問題提供建議嗎?</p></div></div>

[英]Trying to scrape a table from a website with <div tags

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM