【发布时间】:2022-01-02 19:55:14
【问题描述】:
我正在尝试从 coinmarketcap.com 抓取历史比特币数据,以获取从年初到 2021 年 9 月 30 日的收盘价、交易量、日期、高低值。在浏览了几个小时的线程和视频之后,而且我是使用 Python 抓取的新手,我不知道我的错误是什么(或者网站有什么我没有检测到的东西?)。以下是我的代码:
from bs4 import BeautifulSoup
import requests
import pandas as pd
closeList = []
volumeList = []
dateList = []
highList = []
lowList = []
website = 'https://coinmarketcap.com/currencies/bitcoin/historical-data/'
r = requests.get(website)
r = requests.get(website)
soup = BeautifulSoup(r.text, 'lxml')
tr = soup.find_all('tr')
FullData = []
for item in tr:
closeList.append(item.find_all('td')[4].text)
volumeList.append(item.find_all('td')[5].text)
dateList.append(item.find('td',{'style':'text-align: left;'}).text)
highList.append(item.find_all('td')[2].text)
lowList.append(item.find_all('td')[3].text)
FullData.append([closeList,volumeList,dateList,highList,lowList])
df_columns = ["close", "volume", "date", "high", "low"]
df = pd.DataFrame(FullData, columns = df_columns)
print(df)
结果我只得到:
Empty DataFrame
Columns: [close, volume, date, high, low]
Index: []
任务要求我使用 BeautifulSoup 进行抓取,然后导出到 csv(很明显,这只是 df.to_csv - 有人可以帮助我吗?我们将不胜感激。
【问题讨论】:
标签: python pandas web-scraping beautifulsoup