EDGAR の 13-F フォームから所蔵表を抽出する作業を行っています。2013 年以前の所蔵は txt ファイルで提供されていました (例を参照)。私が目指している出力は、txtファイルの「フォーム13F情報テーブル」と同じ形状のpd.DataFrameです(10列と各行が別々の行にあります)。
テーブルをタグ オブジェクトに変換する BeautifulSoup を使用しようとしましたが、上記のようにこれをフォーマットしてデータフレームに入れる方法がわかりません。
これは私のコードの試みです:
soup2 = BeautifulSoup(requests.get(filing_url_13f).content, 'lxml')
holdings = soup2.find_all('table')
#This is my attempt to turn the content into a list:
lixt=[]
for x in soup2.find_all(['c','c','c','c','c','c','c','c','c'] ):
for line in x:
lixt.append(line)
x=lixt[1]
l=[]
for string in x.strings:
l.append(repr(string))
el=l[7]
そして、これは、elが以下を返すときに行き詰まる場所です。会社名 (AMERICAN\n EXPRESS CO) 内に \n が含まれていることが多いため、\n で分割することはできません。
\ namerican \ n express Co Com 025816109 112,209 1,952,142共有定義4 1,952,142-- \ namerican \ n Express Co Com 025816109 990,116 17,225,400共有定義、7 839,832-- \ Namerican \ n Express Co Com 025816109 111,689 1,943,100共有定義4、8、11 1,943,100-- \ Namerican \ n Express CO COM 025816109 459,532 7,994,634株式CO COM 025816109 6,912,308 120,255,879 共有定義 4、11 120,255、879 - -\nAMERICAN\n EXPRESS CO COM 025816109 80,456 1,399,713 共有定義 4、13 1,399,713 - -\nARCHER DANIELS\n MIDLAND CO COM 039483102 163,151 5,956,600 \n CORP COM 064058100 206,661 8,041,300 Shared-Defined 4 8,041,300 - -\nBANK OF NEW\n YORK MELLON\n CORP COM 064058100 46,104 1,793,915 CORP COM 064058100 251,827 9,798,700 共有定義 4、8、11 9,798,700 - -\nCOCA COLA CO COM 191216100 29,000 800、000 共有定義 4 800,000 - -\n
どんな提案にもとても感謝しています。