Данные первой страницы доступны в HTML
. Но если вы заметили, что при смене страницы она не загружает всю страницу, она отправляет запрос AJAX
и изменяет данные таблицы. Данные второй страницы заполнены динамически, используя Javascript
из JSON
. Вы можете найти запрос AJAX
во вкладке XHR
в браузере под Network
.
Вам необходимо использовать AJAX
запрос получить данные с этой веб-страницы.
import requests
url = 'https://etfdb.com/data_set/'
limit = 25
offset = 0
while True:
params = {"tm":"40283","cond":"{\"most_popular\":null}","no_null_sort":"true","count_by_id":"","limit":[limit,limit],"offset":offset}
response = requests.get(url, params=params)
json_data = response.json()
for stock in json_data['rows']:
print(stock['stock_name'], end=' | ')
offset += limit
if json_data['total'] < offset:
break
Выход:
Apple Inc | Abbott Laboratories | Barrick Gold Corp | Accenture <span class="caps">PLC</span> | Analog Devices Inc | Alliance Data Systems Corp | Autodesk Inc | <span class="caps">AGNC</span> Investment Corp | American International Group Inc | Amgen Inc | American Tower Corp | TD Ameritrade Holding Corp | Amazon.com Inc | Apache Corp | ..... | Bank of China Ltd | Samsung Electronics Co Ltd | SoftBank Group Corp