#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 — любые другие способы, с которыми я могу поиграть, чтобы узнать, как я могу извлечь текстовые данные?