按类的元素返回None

时间:2020-06-18 00:37:17

标签: python beautifulsoup

我正在尝试简单地获得Subredit上的用户数量。
打开HTML时,可以看到它。

<div class="_3XFx6CfPlg-4Usgxm0gK8R">55.3k</div>

我写了一些python代码来尝试获取数字:

import requests
from bs4 import BeautifulSoup

url = "https://www.reddit.com/r/TowerofGod/"

response = requests.get(url)

soup = BeautifulSoup(response.text, "html.parser")

regulars = soup.find("div", class_ = "_3XFx6CfPlg-4Usgxm0gK8R")

print(regulars)

但是我只得到None作为回应。我在做什么错了?

1 个答案:

答案 0 :(得分:2)

该类是每次动态生成的,因此每次它都会更改,并且您将无法通过该确切的字符串来获取它。

如何做到?

Reddit为您提供页面的json版本! 仅将.json放在网址末尾,它将为您提供subreddit的所有数据,甚至是帖子!

网址示例:

https://www.reddit.com/r/TowerofGod.json

如果在数据内部看到,您将找到元素:subreddit_subscribers 55389(它在子级和数据内部有点,但是,与子对象完全一样!)

在json中获取元素的步骤:

response -> children -> 0 -> data -> subreddit_subscribers