Web Scraping веб-сайт Dynami c, который использует JavaScript с красивым супом и RegEx - PullRequest
1 голос
/ 27 февраля 2020

Я пытаюсь сделать приложение, которое дает баллы по фэнтези-футболу для XFL в качестве личного проекта. Я смог использовать красивый суп, чтобы получить источник, и String.split (), чтобы разделить все характеристики игроков в Но, когда я пытаюсь получить списки, я получаю что-то вроде этого:

>**1**</fagtd><td style="background-color:white; border-bottom:1px solid black; border-left:none; border-right:1px solid black; border-top:none; text-align:center; vertical-align:bottom; white-space:nowrap; width:89px">**Jazz**</td><td style="background-color:white; border-bottom:1px solid black; border-left:none; border-right:1px solid black; border-top:none; text-align:center; vertical-align:bottom; white-space:nowrap; width:100px">**Ferguson**</td><td style="background-color:white; border-bottom:1px solid black; border-left:none; border-right:1px solid black; border-top:none; text-align:center; vertical-align:bottom; white-space:nowrap; width:61px">**WR**

и из этого мне нужно получить информацию 1 Jazz Ferguson и WR . String.split () не будет работать для чего-то такого сложного. Я думал об использовании регулярных выражений, но я не уверен, как. Может ли кто-нибудь придумать что-то вроде этого, или есть куда более простой способ указать мне правильное направление? Спасибо.

РЕДАКТИРОВАТЬ Это часть кода, которую я использую для получения этих HTML данных выше. Это распечатывает все, что часть выше - только часть.

session = HTMLSession()
page = session.get('https://www.xfl.com/en-US/teams/dallas/renegades-articles/dallas-renegades-roster')

soup2 = BeautifulSoup(page.content, PARSER)
script = soup2.find_all('script')

for tags in script:

    if ((tags.text.find('"title":"Dallas Renegades roster"')) >= 0):

        rosterData = tags.text[(tags.text.find('College')):]
        rosterData = rosterData.replace('</td>', '').replace('\\','')

        print(rosterData)

1 Ответ

2 голосов
/ 28 февраля 2020

Приведенный ниже код получает полную таблицу в виде кадра данных, из которого можно отфильтровать требуемые данные: -

import requests
import pandas as pd
url = 'https://www.xfl.com/en-US/teams/dallas/renegades-articles/dallas-renegades-roster'
html = requests.get(url).content
df_list = pd.read_html(html)
df = df_list[-1]
print(df)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...