Почему BeautifulSoup пропускает некоторые таблицы при использовании findAll - PullRequest
1 голос
/ 07 мая 2019

Я пытаюсь извлечь таблицу «Четыре фактора» из следующего URL-адреса, https://www.basketball -reference.com / boxscores / 201810160GSW.html , когда я использую метод findAll в библиотеке BeautifulSoup, когдапри поиске таблиц я не вижу эту таблицу, а также не вижу таблицу «Line Score».Меня интересует только таблица «Четыре фактора», но я подумал, что примечание о таблице «Оценка строки» может быть полезной информацией.

URL2 = 'https://www.basketball-reference.com/boxscores/201810160GSW.html'
page2 = requests.get(URL2)
page2 = page2.text
soup2 = bs4.BeautifulSoup(page2, 'html.parser')
content = soup2.findAll('table')

Если вы посмотрите на контент, вы можете найти другие 4таблицы на странице, но «Четыре фактора» и «Счет строки» там не отображаются.В дополнение к тому, как помочь мне извлечь таблицу «Четыре фактора», вы можете объяснить, почему она не отображается в содержании?

1 Ответ

0 голосов
/ 07 мая 2019

Это упоминается в одном из комментариев, поэтому, я думаю, вы его не нашли.

import requests
from bs4 import BeautifulSoup , Comment
import pandas as pd

r =requests.get('https://www.basketball-reference.com/boxscores/201810160GSW.html')
soup = BeautifulSoup(r.text,'lxml')
comments= soup.find_all(string=lambda text:isinstance(text,Comment))

for comment in comments:
    if 'id="four_factors"' in comment:
        soup = BeautifulSoup(comment, 'lxml')
        break
table = soup.select_one('#four_factors')
df = pd.read_html(str(table))[0].fillna('')
print(df)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...