美丽汤从网络获取表格时返回无数据记录



网页抓取新手。

我需要从页面获取每日观察表(页面末尾的长表(数据:

https://www.wunderground.com/history/daily/us/tx/greenville/KGVT/date/2015-01-05?cm_ven=localwx_history

表格的 html 从<table _ngcontent-c16="" class="tablesaw-sortable" id="history-observation-table">开始

我的代码是:

url = "https://www.wunderground.com/history/daily/us/tx/greenville/KGVT/date/2015-01-05?cm_ven=localwx_history"
html = urlopen(url)
soup = BeautifulSoup(html,'lxml')
soup.findAll(class_="region-content-observation")

输出为:

[<div class="region-content-observation">
<city-history-observation _nghost-c34=""><div _ngcontent-c34="">
<div _ngcontent-c34="" class="observation-title">Daily Observations</div>
<!-- -->
No Data Recorded
<!-- -->
</div></city-history-observation>
</div>]

因此,它没有获取表并返回"未记录数据",但它确实获得了标题。

当我尝试时

soup.findAll(class_="tablesaw-sortable")

soup.findAll('tr')

它只返回空列表。

有谁知道哪里出了问题?

如果您在 Firefox 中打开网页,您可以使用其开发人员工具中的"网络"选项卡来查看下载的所有不同 Web 资源。 您感兴趣的数据实际上是由此JSON文件提供的 - 可以使用Python的json库进行检索和解析。

注意:我从未抓取过使用 API 密钥的网站,因此我不确定在这种情况下的道德规范或最佳实践。作为测试,我能够毫无问题地下载 JSON 文件。但是,我怀疑地下天气不希望您使用他们的密钥太多次 - 而且看起来他们不再提供免费的天气API密钥。

最新更新