Использование beautifulsoup для извлечения текстовой информации из таблицы на веб-странице

#javascript #python #beautifulsoup

#javascript #python #beautifulsoup

Вопрос:

У меня есть таблица с веб-страницы, из которой я пытаюсь извлечь текстовые данные.

Фрагмент HTML-таблицы выглядит следующим образом: введите описание изображения здесь

Вы можете увидеть следующие заголовки таблиц «Дата вступления в силу», «Тип», «Примечание», из которых я хотел бы извлечь текстовые данные.

Я использовал следующий код, чтобы попытаться извлечь данные:

 content = driver.page_source
soup = BeautifulSoup(content)

for child in soup.find_all('table')[7].children:
    for td in child:
        print(td.text)
 

Однако я столкнулся с 'str' object has no attribute 'text'

Основываясь на этом HTML-макете, каков наилучший способ найти нужную таблицу — выполнить итерацию по ней, т.Е. td, и выбрать текстовые данные соответствующим образом? (Обратите внимание, что для «заголовков заметок» также есть «br», которые, возможно, потребуется повторить). Спасибо.

Комментарии:

1. Можете ли вы указать адрес сайта для тестирования, если это общедоступный сайт …?

2. @goalie1998 — Я боюсь, что сайт является частным, к которому можно получить только безопасный доступ

3. О, HIPAA в любом случае переоценен…

4. @goalie1998 — абсолютно и препятствует прогрессу в области аналитики здравоохранения!

5. можете ли вы указать строку, которую вы используете для объекта soup: итак, что у вас есть после soup = этой 1 строки, и я мог бы помочь

Ответ №1:

Спасибо за это. После content = driver.page_source попробуйте и посмотрите, будут ли pandas извлекать таблицы. Если есть <table> теги, они будут помещены в список таблиц.

Итак:

 import pandas as pd

content = driver.page_source
dfs = pd.read_html(content)
 

Посмотрите, возвращает ли это вашу таблицу в этом списке.

Комментарии:

1. @chittown88 — спасибо за ваш ответ. К сожалению, в прочитанных таблицах нет текстового содержимого, которое я хочу извлечь:

2. @chittown88 — любые другие способы, с которыми я могу поиграть, чтобы узнать, как я могу извлечь текстовые данные?