Получение текста класса с несколькими пробелами - BeautifulSoup - PullRequest
0 голосов
/ 09 июня 2018

Я пытаюсь получить текст в классе, используя BeautifulSoup, но у класса есть несколько пробелов.Конвертируя в текст, я получаю AttributeError: 'NoneType' object has no attribute 'text'.Это заставляет меня думать, что я не получаю текст для этого класса.

Вот строка, которую я использую, чтобы получить текст.ticket_count = soup.find('div', class_ = 'ui black circular label ticket-count')

Является ли проблема пробелами в имени класса?

1 Ответ

0 голосов
/ 09 июня 2018

Полагаю, вы хотите знать, когда билет станет доступным.Веб-страница использует JavaScript для опроса соединения через веб-сокет, чтобы узнать, доступны ли билеты.Веб-сокет возвращает JSON.Вы можете имитировать поведение, опрашивая веб-сокет с помощью Python.Следующий код опрашивает веб-сокет каждые 5 секунд, пока билет не станет доступным, а затем печатает объект JSON с подробным описанием доступного билета.(Вам нужно будет установить websocket, если вы этого еще не сделали.)

import json
from websocket import create_connection
import time


def run():
    while 1:
        time.sleep(5)
        ws = create_connection("wss://mothership.splendourtickets.com/stream")
        r = ws.recv()
        ws.close()
        for t in json.loads(r)['tickets']:
            if not t['ticketCount'] == 0:
                return (t)

if __name__ == "__main__":
    ticket = run()
    print (json.dumps(ticket, indent=4, sort_keys=True))

Выводится, когда билет становится доступным:

{
    "id": "1",
    "name": "Three Day Ticket",
    "ticketCount": 1,
    "ticketCountStr": "1",
    "type": "eventTicket"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...