Страница является динамической, и данные отображаются после извлечения html, что означает, что тег таблицы имеет значение null.
Вы можете получить данные из API и затем преобразовать их в кадр данных:
import pandas as pd
import requests
url = 'https://api.nasdaq.com/api/quote/RSHPF/historical'
payload = {
'assetclass': 'stocks',
'fromdate': '2019-10-06',
'limit': '100',
'todate': '2019-11-06'}
jsonData = requests.get(url, params=payload).json()
df = pd.DataFrame(jsonData['data']['tradesTable']['rows'])
Вывод:
print (df.to_string())
close date high low open volume
0 $1.97 11/05/2019 $1.97 $1.97 $1.97 N/A
1 $1.97 11/04/2019 $1.97 $1.97 $1.97 N/A
2 $1.97 11/01/2019 $1.97 $1.97 $1.97 12,600
3 $1.96 10/31/2019 $1.96 $1.96 $1.96 N/A
4 $1.96 10/30/2019 $1.96 $1.96 $1.96 N/A
5 $1.96 10/29/2019 $1.96 $1.96 $1.96 N/A
6 $1.96 10/28/2019 $1.96 $1.96 $1.96 N/A
7 $1.96 10/25/2019 $1.96 $1.96 $1.96 N/A
8 $1.96 10/24/2019 $1.96 $1.96 $1.96 N/A
9 $1.96 10/23/2019 $1.96 $1.96 $1.96 N/A
10 $1.96 10/22/2019 $1.96 $1.96 $1.96 N/A
11 $1.96 10/21/2019 $1.96 $1.96 $1.96 N/A
12 $1.96 10/18/2019 $1.96 $1.96 $1.96 N/A
13 $1.96 10/17/2019 $1.96 $1.96 $1.96 N/A
14 $1.96 10/16/2019 $1.96 $1.96 $1.96 N/A
15 $1.96 10/15/2019 $1.96 $1.96 $1.96 7,650
16 $2 10/14/2019 $2 $2 $2 N/A
17 $2 10/11/2019 $2 $2 $2 N/A
18 $2 10/10/2019 $2 $2 $2 250
19 $2 10/09/2019 $2 $2 $2 250
20 $2 10/08/2019 $2 $2 $2 N/A
21 $2 10/07/2019 $2 $2 $2 200