BeautifulSoup 中未显示表格元素

Posted

技术标签:

【中文标题】BeautifulSoup 中未显示表格元素【英文标题】:Table element not showing in BeautifulSoup 【发布时间】:2019-01-24 15:16:03 【问题描述】:

我正在尝试从this web site提取表格数据

以下是代码--

import requests
from bs4 import BeautifulSoup as bs

page = requests.get('https://www.vitalityservicing.com/serviceapi/Monitoring/QueueDepth?tenantId=1')

soup = bs(page.text, "html.parser")

#None of the following method works
tb = soup.table 
#tb = soup.body.table
#tb = soup.find_all('table')

当我尝试打印 tb 它的 None

所以我尝试查看下载的 HTML 的body

print(soup.body.prettify())

我没有看到 table 元素或其子元素。仅存在 <body><script> 元素:

但是当我在 chrome 中检查页面时,我看到了所有元素:

我不明白为什么当我在 chrome 上加载页面时,requests.get 没有与 requests.get 一起下载元素

【问题讨论】:

这能回答你的问题吗? Beautiful Soup Can't Find Tags 【参考方案1】:

您没有获得该内容,因为当您执行请求时,页面中不存在该内容。

如果您检查脚本标签之间的 javascript 代码,您可以看到它正在动态生成表格。所以,你在这之前收到了html代码,因为requests不是浏览器,不会执行js,你也看不到表格。

既然您知道为什么看不到表格,那么您的下一个问题是如何在 javascript 执行后生成 HTML。不要晕倒,这是可行的。您可能会发现 this question 中的解决方案很有趣。

祝你好运

【讨论】:

是的,我想通了,正在使用 selenium webdriver 加载页面。解决了我的问题。谢谢

以上是关于BeautifulSoup 中未显示表格元素的主要内容,如果未能解决你的问题,请参考以下文章

导航控制器内的表格视图中未调用 textFieldDidEndEditing

生产红宝石中未显示条纹卡元素

BeautifulSoup的基本使用

使用 useEffect 钩子在反应功能组件中未使用 .map() 显示的元素

python爬虫——爬取小说 | 探索白子画和花千骨的爱恨情仇

Dom 中未显示的按钮:'Bfrtip'