表元素未显示在BeautifulSoup中

时间:2018-08-17 14:39:57

标签: python html web-scraping beautifulsoup python-requests

我正在尝试从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的{​​{1}}

所以我尝试用下载的HTML来查看None

body

我没有看到print(soup.body.prettify()) 元素或其子元素。仅存在table<body>元素:

Output of print(soup.body)

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

table and it's child elements present while inspecting

当我将页面加载到chrome上时,我不明白为什么<script>元素没有被table下载

1 个答案:

答案 0 :(得分:0)

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

如果检查脚本标记之间的javascript代码,则可以看到它正在动态生成表。因此,由于requests不是浏览器并且不会执行js,因此您会收到html代码。

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

祝你好运