Красивые данные супа в двойных фигурных скобках - PullRequest
0 голосов
/ 09 февраля 2020

Вот мой код:

import requests
from bs4 import BeautifulSoup, Comment

r = requests.get('https://pro.eslgaming.com/r6/proleague/standings/')
soup = BeautifulSoup(r.text, features="html.parser")



table = soup.find('table')

table_rows = table.find_all('tr')
for tr in table_rows:
    td = tr.find_all('td')
    row = [i.text for i in td]
    print(row)

Я получаю вывод:

[]
['{{team.position}}.', '', '\n {{team.team.name}}\n                        DISQUALIFIED\n', '{{team.points}}', '{{team.matches_played}}', '{{team.matches_won}}', '-', '{{team.matches_draw}}', '-', '{{team.matches_lost}}', '{{team.rounds_won}}', ':', '{{team.rounds_lost}}', '{{team.rounds_won - team.rounds_lost}}']

Я помню, что делал html и помнил, что {{ и }} заключают в себе переменная или некоторый код. Вместо распечатки {{team.points}} можно было бы получить ее переменную, например 5.

1 Ответ

0 голосов
/ 10 февраля 2020

Данные фактически заполняются позже Javascript через вызов XHR. Вы можете проверить их с помощью Chrome Dev Tools.

Например, попробуйте GET на https://cdn1.api.esl.tv/v1/teamranking/list?pid=13777,13778,13779&lang=en&, это даст хорошие JSON, которые вам даже не нужно анализировать.

Так проверить эти внутренние вызовы API или использовать что-то, что вызовет их, например, Selenium или Cypress.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...