靓汤还空李

2024-06-17 17:35:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我是新来的。所以我得到了一个从中提取数据的任务:Here

我选择“评论”数据集。下面是我的报废代码。在

import requests
from bs4 import BeautifulSoup
url = 'https://www.kaggle.com/hacker-news/hacker-news'
headers = {'User-Agent' : 'Mozilla/5.0'}
response = requests.get(url, headers = headers)
response.status_code
response.content
soup = BeautifulSoup(response.content, 'html.parser')
soup.find_all('tbody', class_ = 'TableBody-kSbjpE jGqIxa')

当我尝试执行最后一个命令时,它返回:[]。在

所以,我被困在这里了。我知道我们可以从内核获取数据,但只是为了练习,我哪里出错了?我选错课了吗?我想收集数据,并可能将其保存到CSV文件或非SQL数据库,首选Cassandra。在


Tags: 数据代码fromimporturlhereresponse评论
2条回答

即使您能够在元素检查器中看到'tbody', class_ = 'TableBody-kSbjpE jGqIxa',但是您发出的请求并不包含这个类。你自己看看print(soup.prettify())。这很可能是因为您没有请求正确的url。在

这可能不是你所知道的,但作为参考: 实际上不需要使用beauthoulsoup进行抓取,可以从API中获取所有可用数据集的列表。一旦安装并配置了它,就可以获得数据集:kaggle datasets download -d。如果您希望继续使用API,这里有更多信息:https://github.com/Kaggle/kaggle-api

您得到这个[]是因为您想要获取的数据来自于在加载web页面之后加载的API,所以您正在访问的页面不包含该类

你可以打开你的浏览器控制台和检查网络,如屏幕截图所示,在那里你会发现你想要刮取的数据,所以你必须向那个网址发出请求来获取数据

enter image description here

您可以在预览选项卡中检索此URL中的数据,您可以看到所有数据。在

另外,如果您对python有很好的了解,您也可以使用它来获取数据

https://doc.scrapy.org/en/latest/intro/overview.html

相关问题 更多 >