Веб Python, очищающий таблицу с фильтрами - PullRequest
1 голос
/ 24 октября 2019

У меня проблемы с извлечением текста при просмотре таблицы в Интернете, и я думаю, что виноваты фильтры на странице. Я попытался выделить все элементы "tr" и "th", но не могу передать основной текст в Python. Что я делаю не так?

Мой код:

from bs4 import BeautifulSoup
import requests

page_link ='https://www.ersteliga.hu/stats#/players/1945/regular/points'

page = requests.get(page_link)
html = page.content
soup = BeautifulSoup(html, 'html.parser')

my_table = soup.find_all('table', class_= "IHD-TABLE")
columns = my_table.find('th')

Я ожидаю, что выходные данные будут содержать текстовые значения, видимые в Интернете, но мне кажется, что выходные данные выглядят иначе, чем HTML навеб-страница.

1 Ответ

0 голосов
/ 24 октября 2019

Данные поступают динамически от другого xhr-запроса, который страница находит на вкладке сети. Возвращает json.

import requests
import pandas as pd

headers = {
    'referer': 'https://www.ersteliga.hu/stats',
    'user-agent': 'Mozilla/5.0'
}
data = {'championshipId': '1945', 'division': 'Alapszakasz','type': 'playerStatsChampionShipPeriod'}
r = requests.post('https://www.ersteliga.hu/ajax/CallWS', headers = headers, data=data).json()
df = pd.DataFrame([i for i in r['d']], columns = list(r['d'][0].keys()))
print(df)

Сортировка по столбцу point desc, чтобы получить тот же порядок, что и на странице

print(df.sort_values(['point'], ascending=[False]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...