Элемент по классу возвращает None - PullRequest
2 голосов
/ 18 июня 2020

Я пытаюсь просто получить количество пользователей на субкредите.
Когда я открываю 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 Ответ

2 голосов
/ 18 июня 2020

Класс динамически генерируется каждый раз, поэтому каждый раз он будет меняться, и вы не сможете получить его по этой точной строке.

Как это сделать?

Reddit предлагает у вас json версия страницы! Поместив только. json в конец URL-адреса, он предоставит вам все данные сабреддита, даже сообщения!

Пример для URL-адреса:

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

если вы видите внутри данных, вы найдете элемент: subreddit_subscribers 55389 (это немного внутри дочерних элементов и данных, но эй, точно так же, как у подзаголовка!)

в json шаги, чтобы добраться до элемента:

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

...