我想从一个有BeautifulSoup的网站中提取一个表。首先,我提取了DAX年终课程(元素的名称为“HistKurseYear”)。这非常好用。然后我尝试从Adidas提取年终课程(元素的名称为“HistKurseYear”),它给了我ValueError: No tables found
。然而,在Excel中可以检索该表。
page_Ad = requests.get(
"https://www.boerse.de/historische-kurse/Adidas-Aktie/DE000A1EWWW0")
soup_Ad = BeautifulSoup(page_Ad.content, 'html.parser')
element_Ad = soup_Ad.find(id='histKurseYear')
df_Adidas = pd.read_html(str(element_Ad))[0]
ValueError Traceback (most recent call last)
<ipython-input-8-03cb2123ccf1> in <module>
----> 1 df_Adidas = pd.read_html(str(element_Ad))[0]
5 frames
/usr/local/lib/python3.9/dist-packages/pandas/io/html.py in _parse_tables(self, doc, match, attrs)
567
568 if not tables:
--> 569 raise ValueError("No tables found")
570
571 result = []
ValueError: No tables found
此外,我尝试了网站上的另一个表,每月结束课程-工作。此外,在Excel中,可以检索该表。
我该怎么做才能得到想要的table?
1条答案
按热度按时间mklgxw1f1#
问题是,没有这样的
id
元素,只有一个<div>
,其名称类似于histKurseYear
,这就是为什么pandas
无法从您的None
字符串中找到任何class
。只需通过
pandas.read_html()
创建的 Dataframe 列表中的索引直接选择表即可:或者尝试与表中的字符串匹配: