美丽的汤找不到表

时间:2020-04-24 21:30:12

标签: python beautifulsoup

我正在尝试使用Python和Beautiful Soup从网页上的表中收集一些数据。但是,当我从页面上进行选择时,得到的结果与在浏览器中得到的结果不同。具体来说,表完全丢失。这是Firefox开发工具检查器中表格的屏幕截图:

Screenshot of web page and inspector

这是我从美丽汤中得到的输出:

Screenshot of IDE with output

我尝试使用urllib而不是请求,并且尝试使用其他HTML解析器(html.parser和lxml)。全部给出相同的结果。关于这里可能发生什么以及如何解决它以访问表中数据的任何建议?

import requests
from bs4 import BeautifulSoup
import pandas
import tabula
import html5lib

knox = requests.get("https://covid.knoxcountytn.gov/case-count.html")
knox_soup = BeautifulSoup(knox.text, 'html5lib')
knox_confirmed = knox_soup.find('div', id='covid_cases').prettify()

print(knox_confirmed)

2 个答案:

答案 0 :(得分:1)

尝试访问https://covid.knoxcountytn.gov/case-count.html时禁用javascript,您将看不到任何表格。正如@barny所说,该表是用javascript生成的,因此您无法使用BeautifulSoup解析它(至少不容易,请参阅How to call JavaScript function using BeautifulSoup and Python)。

答案 1 :(得分:0)

网站是通过JavaScript加载的,因此您无法使用requestes为您呈现JS。您可以使用seleniumrequests_html等。

就目前而言,我已经能够跟踪从何处获取数据了。通过检查XHR的流量。

所以我们可以使用pandas.read_csv()如下:

import pandas as pd

df = pd.read_csv("https://covid.knoxcountytn.gov/includes/covid_cases.csv")

print(df)

enter image description here

相关问题