我正在尝试从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>
元素:
但是当我检查Chrome中的页面时,我看到了所有元素:
当我将页面加载到chrome上时,我不明白为什么<script>
元素没有被table
下载
答案 0 :(得分:0)
您没有得到该内容,因为执行请求时,该请求不在页面中。 还。
如果检查脚本标记之间的javascript代码,则可以看到它正在动态生成表。因此,由于requests
不是浏览器并且不会执行js,因此您会收到html代码。
现在,您知道了为什么看不到表格,您的下一个问题是如何在执行javascript之后获取产生的HTML。不要晕倒,这是可行的。您可能会发现this question中的解决方案很有趣。
祝你好运