【问题标题】:Why am i getting an empty list instead of a list with elements in it while web scraping为什么我在网页抓取时得到一个空列表而不是包含元素的列表
【发布时间】:2020-10-27 03:14:30
【问题描述】:

所以我试图从网站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)

这是我得到的输出

[]
[]

此外,不仅在这里,当我试图从亚马逊网站上抓取产品信息时,我得到了相同的结果(空列表)。

【问题讨论】:

    标签: web-scraping beautifulsoup python-requests data-extraction


    【解决方案1】:

    该列表是从另一个端点动态检索的,您可以在返回 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']]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-05
      • 1970-01-01
      • 2021-10-01
      • 2018-04-12
      相关资源
      最近更新 更多