Невозможно получить доступ к div, используя BeautifulSoup - PullRequest
0 голосов
/ 13 ноября 2018

Я не могу разобрать мимо div id = "id =" divTradeHaltResults ". Когда я пытаюсь вернуть таблицу в этом div, я получаю Нет . Заранее спасибо !

from bs4 import BeautifulSoup 
import requests 

my_url = "https://www.nasdaqtrader.com/Trader.aspx?id=TradeHalts"

r = requests.get(url=my_url)
page_text = r.text

soup = BeautifulSoup(page_text, "lxml")

table = soup.table

print(table)

1 Ответ

0 голосов
/ 13 ноября 2018

Если вы выберете этот тег внутри супа, вы получите тег, но он пуст. Если вы посмотрите на веб-странице, вы можете увидеть таблицу в теге. Я предполагаю, что эта таблица генерируется с помощью JS (в некоторой форме), поэтому она не поставляется с HTML. Моим решением было бы обратиться к чему-то вроде Selenium.

Это код, который я запустил, чтобы выбрать этот тег:

soup.find('div', {'id':'divTradeHaltResults'})
# <div id="divTradeHaltResults"></div>

Если вы посмотрите на JS на странице, вы можете найти функцию, которая генерирует таблицу, как я упоминал выше:

function GetTradeHalts()
{
    document.getElementById('divTradeHaltResults').innerHTML = "updating....";

    Server.BL_TradeHalt.GetTradeHalts(cb_GetTradeHalts);

    setTimeout(GetTradeHalts, 1000 * 60);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...