Причина, по которой вы получаете None
, это потому, что страница загружается динамически через JavaScript
, который отображается после загрузки самой страницы.
Поэтому я смог отследить происхождение table
, откуда JS
отправляет запрос XHR
для его получения. это можно отследить через ваш браузер Developer-Tools
в Network-Tab
.
В противном случае вы можете использовать selenium
для этого. Я включил оба решения для вас.
import requests
import pandas as pd
json = {
"id": 2,
"method": "BL_TradeHalt.GetTradeHalts",
"params": "[]",
"version": "1.1"
}
headers = {
'Referer': 'https://www.nasdaqtrader.com/trader.aspx?id=TradeHalts'
}
r = requests.post(
"https://www.nasdaqtrader.com/RPCHandler.axd", json=json, headers=headers).json()
df = pd.read_html(r["result"])[0]
df.to_csv("table1.csv", index=False)
Вывод: просмотр в режиме онлайн
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
from bs4 import BeautifulSoup
import pandas as pd
options = Options()
options.add_argument('--headless')
driver = webdriver.Firefox(options=options)
driver.get(
"https://www.nasdaqtrader.com/trader.aspx?id=TradeHalts")
df = pd.read_html(driver.page_source)[2]
# print(df)
df.to_csv("table.csv", index=False)
driver.quit()
Вывод: просмотр в режиме онлайн