Я пытаюсь использовать базу данных по ценным бумагам и биржам США (SE C), чтобы просматривать финансовые отчеты компании (известные как 10 КБ), чтобы получить список членов исполнительного комитета для каждой подачи. В настоящее время я использую самые последние файлы для Microsoft (биржевой тикер: MSFT) и Walmart (биржевой тикер: WMT). Я знаю, что могу найти эту информацию в другом месте на финансовых сайтах, но я пытаюсь создать гибкую базу данных для личного использования. Моя проблема:
- Позиция индекса таблицы различна в каждом отчете, в одном отчете компании таблица, которую я хочу, может быть таблицей 38, а в другом - таблицей 45, поэтому stati c index / Счетчик позиций не будет работать для нескольких заявок.
- Специфические атрибуты c в каждом теге таблицы HTML меняются, поэтому я не могу найти общий атрибут. В некоторых случаях я нахожу общие атрибуты, а иногда - нет.
Я начинаю думать, что я не смогу автоматизировать это из-за отсутствия идентификаторов, уникальных для каждого файла и общих для всех файлы. Я бился головой, просматривая множество Python уроков и видеороликов за последние несколько недель. Любые предложения приветствуются, полная автоматизация была бы идеальной, так что я мог бы пройти 1058 * через несколько заявок, частичная помощь тоже я здесь, чтобы учиться. Возможно, я пытаюсь автоматизировать что-то слишком разнообразное.
Microsoft Link:
https://www.sec.gov/Archives/edgar/data/789019/000156459019027952/msft-10k_20190630.htm
Желаемая таблица:
<table border="0" cellspacing="0" cellpadding="0" align="center" style="border-collapse:collapse; width:100%;">
Ссылка Walmart:
https://www.sec.gov/Archives/edgar/data/104169/000010416919000016/wmtform10-kx1312019.htm
Желаемая таблица:
<table cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;border-collapse:collapse;text-align:left;">
Код для подсчета Количество таблиц на каждой странице:
from selenium import webdriver
from bs4 import BeautifulSoup
chrome_path = r"C:\webdrivers\chromedriver.exe"
browser = webdriver.Chrome(chrome_path)
#Microsoft
browser.get("https://www.sec.gov/Archives/edgar/data/789019/000156459019027952/msft-10k_20190630.htm")
msft = browser.page_source
page_msft = BeautifulSoup(msft, 'html.parser')
tables_msft = page_msft.find_all("table")
#Walmart
browser.get("https://www.sec.gov/Archives/edgar/data/104169/000010416919000016/wmtform10-kx1312019.htm")
wmt = browser.page_source
page_wmt = BeautifulSoup(wmt, 'html.parser')
tables_wmt = page_wmt.find_all("table")
print("MSFT Result Table Count: " + str(len(tables_msft)))
print("Walmart Result Table Count: " + str(len(tables_wmt)))
Результаты:
Таблица результатов MSFT: 263
Таблица результатов Walmart: 258
Процесс завершен с кодом выхода 0