web-scraping - 为什么我在网页抓取时得到一个空列表而不是包含元素的列表
问题描述
因此,我试图从网站https://www.theguardian.com/world/2020/oct/25/covid-world-map-countries-most-coronavirus-cases-deaths的表格中抓取国家名称作为列表。但是当我打印出来时,它只是给了我一个空列表,而不是一个包含国家名称的列表。谁能解释我为什么会得到这个?代码如下,
import requests
from bs4 import BeautifulSoup
webpage = requests.get("https://www.theguardian.com/world/2020/oct/25/covid-world-map-countries-most-coronavirus-cases-deaths")
soup = BeautifulSoup(webpage.content, "html.parser")
countries = soup.find_all("div", attrs={"class": 'gv-cell gv-country-name'})
print(countries)
list_of_countries = []
for country in countries:
list_of_countries.append(country.get_text())
print(list_of_countries)
这是我得到的输出
[]
[]
此外,不仅在这里,当我试图从亚马逊网站上抓取产品信息时,我得到了相同的结果(空列表)。
解决方案
该列表是从另一个端点动态检索的,您可以在返回 json 的网络选项卡中找到。像下面这样的东西应该可以工作:
import requests
r = requests.get('https://interactive.guim.co.uk/2020/coronavirus-central-data/latest.json').json() #may need to add headers
countries = [i['attributes']['Country_Region'] for i in r['features']]
推荐阅读
- sql-server - 为分析数据库项目设计测量数据规格表的策略
- shell - POSIX:abcdef 到 ab bc cd de ef
- javascript - 流星反应教程 - 运行流星删除不安全后“更新失败:访问被拒绝”
- r - 如何在 x 轴上绘制 24 小时,以月分隔
- subquery - SQL 查询中的列无效
- r - R Markdown对数字进行分组以防止分页
- typescript - 在记录中创建新属性
表示新值可以是未定义的 - javascript - 组件重新渲染时页面跳转(ReactJS/Gatsby)
- javascript - 通过 Javascript 添加的 HTML 元素在 iPhone 上不可见 (7)
- swift - 如何在 NewView:NSViewRepresentable 中制作 ContextMenu?