bs4美丽的汤由于某种原因找不到div的div

这:HTML


<div id="divTradeHaltResults"> 

<div class="genTable"

   <table>

    <tbody>

    <tr> 

     <td> 03/10/2020  </td> 

     <td> 15:11:45     </td>


代码


url = r'https://www.nasdaqtrader.com/trader.aspx?id=TradeHalts'

r=requests.get(url)

soup = BeautifulSoup(r.content, "html.parser")

table = soup.find('div',{'id':'divTradeHaltResults'})

divclass=table.find('div',{'class':"genTable"})


divt=divclass.find('table')

结果:


divclass={None Type}None

我已经尝试了“lxml”解析器,但无济于事。

我可以使用硒获得它,但它使用了太多的资源。

从检查围绕多个div的

所有其他问题来看,bs4似乎存在固有的问题。

有没有人解决它?我尝试了其他人

的多种想法。


ibeautiful
浏览 70回答 1
1回答

天涯尽头无女友

您得到的原因在于,该页面是动态加载的,一旦页面本身加载,就会通过该页面呈现。NoneJavaScript因此,我已经能够跟踪发送请求以获取它的来源。这可以通过浏览器在 下进行跟踪。tableJSXHRDeveloper-ToolsNetwork-Tab否则,您可以使用它。我已经为您提供了这两种解决方案。seleniumimport requestsimport pandas as pdjson = {&nbsp; &nbsp; "id": 2,&nbsp; &nbsp; "method": "BL_TradeHalt.GetTradeHalts",&nbsp; &nbsp; "params": "[]",&nbsp; &nbsp; "version": "1.1"}headers = {&nbsp; &nbsp; 'Referer': 'https://www.nasdaqtrader.com/trader.aspx?id=TradeHalts'}r = requests.post(&nbsp; &nbsp; "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 webdriverfrom selenium.webdriver.firefox.options import Optionsfrom bs4 import BeautifulSoupimport pandas as pdoptions = Options()options.add_argument('--headless')driver = webdriver.Firefox(options=options)driver.get(&nbsp; &nbsp; "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()输出:在线查看
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python