Есть ли способ поиска указанного c <div>в комментарии HTML с использованием Python и BeautifulSoup - PullRequest
0 голосов
/ 09 января 2020

Мне нужно извлечь комментарий из HTML сайта и проанализировать, хотя он похож на обычный HTML, чтобы найти специфику c tags.

Мой текущий код:

website_url = requests.get("https://www.baseball-reference.com/teams/OAK/2019.shtml").text
soup = BeautifulSoup(website_url,'lxml')
comments = soup.findAll(text=lambda text:isinstance(text, Comment))
appearances = comments.find("div", {"id": "div_appearances"})
for comment in comments:
    appearances = comment.find("div", {"id": "div_appearances"})
    print(appearances)

Когда я запускаю это, я получаю ошибку:

Traceback (most recent call last):
  File "C:\Users\almar\Desktop\testesrseraseras.py", line 13, in <module>
    appearances = comment.find("div", {"id": "div_appearances"})
TypeError: slice indices must be integers or None or have an __index__ method

Когда я распечатываю родительский элемент появлений div Я вижу, что по какой-то причине text, который я хочу, находится внутри очень большого комментария, и мне нужно извлечь его, найти теги внутри него, используя что-то вроде div.find("element", {"id","id_name"}), и распечатать их.

Я ищу таблицу Full-Season Roster & Games by Position, которая находится внутри комментария, когда я проверяю элемент, нужная таблица находится вне комментария, но когда я пытаюсь распечатать ее, она находится внутри одного.

Извините за любые ошибки, я очень новый!

1 Ответ

0 голосов
/ 09 января 2020
import pandas as pd

df = pd.read_html("https://www.baseball-reference.com/teams/OAK/2019.shtml")[0]

df.to_csv("out.csv", index=False)

Вывод: Просмотр онлайн

ОБНОВЛЕНИЕ:

import pandas as pd

df = pd.read_html(
    "https://widgets.sports-reference.com/wg.fcgi?css=1&site=br&url=%2Fteams%2FOAK%2F2019.shtml&div=div_appearances")

data = df[0][0:-1].iloc[:, :-1]

data.to_csv("out.csv", index=False)

Вывод: просмотр онлайн

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