Извлечение HTML Таблица на основе Specifi c Заголовки столбцов - Python - PullRequest
1 голос
/ 01 апреля 2020

Я пытаюсь извлечь html таблицы из следующего URL .

Например, таблица вознаграждений директоров 2019 года на стр. 44. Я считаю, что в таблице нет конкретный идентификатор c, например, «Таблица компенсаций» и т. д. c. Чтобы извлечь таблицу, я могу только подумать о сопоставлении имен столбцов или ключевых слов, таких как «Награды за акции» или «Все другие компенсации», и затем захватить связанную таблицу. .

Есть ли простой способ извлечь эти таблицы на основе имен столбцов? Или, может быть, более простой способ?

Спасибо!

Я сравнительно недавно разбираюсь в таблицах HTML. Мой код выглядит следующим образом

from bs4 import BeautifulSoup
import requests
url = 'https://www.sec.gov/Archives/edgar/data/66740/000120677420000907/mmm3661701-def14a.htm'
r = requests.get(url) 
soup = BeautifulSoup(r.text, 'html.parser')
rows = soup.find_all('tr')

1 Ответ

1 голос
/ 02 апреля 2020

Конечно, вы можете сделать это, используя функцию pandas read_html, используя match и attrs согласно документации .

import pandas as pd

df = pd.read_html(
    "https://www.sec.gov/Archives/edgar/data/66740/000120677420000907/mmm3661701-def14a.htm", attrs={'style': 'border-collapse: collapse; width: 100%; font: 9pt Arial, Helvetica, Sans-Serif'}, match="Non-Employee Directors")

print(df)

df[0].to_csv("data.csv", index=False, header=False)

Вывод: Просмотр -Online

enter image description here

...