@goormany

Почему парсер выводит только 1 число?

Так привет, пытаюсь создать парсер для сайта 'https://csgopolygon.gg' (НЕ РЕКЛАМА)
Говорят что нужно проверять все свои шаги и вот тут то и проблема, выводит 1 число, это число 7(хотя в ленте выпадения чисел её нет)

Вот код:

from bs4 import BeautifulSoup
import requests

URL = 'https://csgopolygon.gg'
HEADERS = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.164 Safari/537.36 OPR/77.0.4054.275 (Edition Yx GX)'
}

def get_html(url):
    r = requests.get(url, headers=HEADERS)
    return r

def get_content(html):
    soup = BeautifulSoup(html, 'html.parser')
    items = soup.find_all('ul', class_='balls')

    ballz = []

    for item in items:
        ballz.append({
            'num': item.find('li', class_='ball').get_text(strip=True)
        })
        print(ballz)

def parse():
    html = get_html(URL)
    if html.status_code == 200:
        get_content(html.text)
    else:
        print(html.status_code)

parse()


Вот что выводит:
6103029c58deb832257849.png
Вот что находится на сайте:
610302a505887638737824.png
  • Вопрос задан
  • 184 просмотра
Пригласить эксперта
Ответы на вопрос 1
@MEDIOFF
Python Developer
Вы ищите на странице все ul c классом balls, такой как я понимаю всего один, потом в цикле вы берете один этот ul и у него ищите li с классом ball, он вам находит первый которой нашел и возвращает.

Как я вижу решение:
1. В цикле сделать вложенный цикл который будет проходить по всем li;
2. Вместо ul balls сразу забирать все li ball.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы