Извлечение данных с использованием Beautiful Soup и Requests - PullRequest
0 голосов
/ 29 декабря 2018

Я пытаюсь очистить данные из Stackoverflow, используя пакеты Beautiful soup и requests в Python.Мне удалось извлечь большинство деталей, однако, когда я пытаюсь извлечь оценки репутации пользователя, я могу получить данные только для reputation score и Gold, но не могу извлечь данные для Silver иBronze count.

Ниже приведен код, который я использую для извлечения:

from bs4 import BeautifulSoup
import requests

source = requests.get('/12632807/kak-ya-mogu-ogranichit-funktsiy-igrovoi-avtomat-tolko-na-5-hodov-s-pomoschy-tsikla-do-while').text
soup = BeautifulSoup(source,'lxml')
article = soup.find('div', class_='inner-content clearfix')
user_reputation_score = article.find('span', class_='reputation-score').text
print(user_reputation_score)

Код для золотого значка:

gold_badge = article.find('div', class_='-flair').find('span', class_='badgecount').text
print(gold_badge)

Хотите знать, как расширитьвыше, чтобы извлечь данные для серебряных и бронзовых партий.

Используйте следующую ссылку для проверки:

/12632807/kak-ya-mogu-ogranichit-funktsiy-igrovoi-avtomat-tolko-na-5-hodov-s-pomoschy-tsikla-do-while

Обратите внимание, что я делаю это исключительно для образовательных целей.Благодаря.

1 Ответ

0 голосов
/ 29 декабря 2018

find() вернуть первый элемент, чтобы получить несколько элементов, используйте find_all()

badge = article.find('div', class_='-flair').find_all('span', class_='badgecount')
gold_badge = badge[0].text
silver_badge = badge[1].text
bronze_badge = badge[2].text
print(gold_badge, silver_badge, bronze_badge) # 2 7 26
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...