首页 > 解决方案 > 无法访问 div,使用 BeautifulSoup

问题描述

我无法解析div id= "id="divTradeHaltResults"。当我尝试在此 div 中返回表格时,我得到None。提前致谢!

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)

标签: pythonbeautifulsoup

解决方案


如果您在汤内选择该标签,您将获得该标签,但它是空的。如果您查看网页,您可以看到标签中的表格。我的猜测是这个表是用 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);
}

推荐阅读