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
使用 useEffect 钩子在反应功能组件中未使用 .map() 显示的元素