使用不同格式从不同来源提取具有相似数据的 HTML 表 - Python

我正在尝试从两个不同的 HTML 源中抓取 HTML 表格。两者非常相似,每个表都包含相同的数据,但它们的结构可能不同,具有不同的列名称等。对于一个源,所有数据可能包含在一个表中,而另一个源可能将数据分解为两个单独的桌子。


作为一个例子,我们可以看看 AAPL 和 MMM 股票的内部持有者。


屏幕截图在这里 - https://i.stack.imgur.com/dt6Pa.jpg


可以说,最终目标是提取内部人士持有的股份总数——一个单一数字。每个表格的结构可能不同,但应该相似的是“受益”或“股票”等关键词。


任何帮助将不胜感激。在上一篇文章中,我能够提取一些数据。但如果结构不同,则不能循环或重复。


根据特定列标题提取 HTML 表 - Python

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="Name/address")


df = df[0]

df = df.dropna(axis = 'columns')


还尝试过BS



url = 'https://www.sec.gov/Archives/edgar/data/66740/000120677420000907/mmm3661701-def14a.htm'

r = requests.get(url) 

soup = BeautifulSoup(r.text, 'html.parser')

tables = soup.find_all('table')

rows = tables.find_all('tr')


偶然的你
浏览 75回答 1
1回答

素胚勾勒不出你

这确实很复杂,但我们开始吧:)。import requestsfrom bs4 import BeautifulSoupimport reimport pandas as pdurls = ['https://www.sec.gov/Archives/edgar/data/320193/000119312520001450/d799303ddef14a.htm',        'https://www.sec.gov/Archives/edgar/data/66740/000120677420000907/mmm3661701-def14a.htm']def main(urls):    with requests.Session() as req:        for url in urls:            r = req.get(url)            soup = BeautifulSoup(r.content, 'html.parser')            for item in soup.findAll("a", text=re.compile("^Security")):                item = item.get("href")[1:]                catch = soup.find("a", {'name': item}).find_next("table")                df = pd.read_html(str(catch))                print(df)                df[0].to_csv(f"{item}.csv", index=False, header=None)main(urls)输出:[                                                    0  ...    80                                                 NaN  ...  NaN1                                                 NaN  ...  NaN2                            Name of Beneficial Owner  ...  NaN3                                                 NaN  ...  NaN4                                  The Vanguard Group  ...    %5                                                 NaN  ...  NaN6                                     BlackRock, Inc.  ...    %7                                                 NaN  ...  NaN8         Berkshire Hathaway Inc. / Warren E. Buffett  ...    %9                                                 NaN  ...  NaN10                                         Kate Adams  ...  NaN11                                                NaN  ...  NaN12                                    Angela Ahrendts  ...  NaN13                                                NaN  ...  NaN14                                         James Bell  ...  NaN15                                                NaN  ...  NaN16                                           Tim Cook  ...  NaN17                                                NaN  ...  NaN18                                            Al Gore  ...  NaN19                                                NaN  ...  NaN20                                        Andrea Jung  ...  NaN21                                                NaN  ...  NaN22                                       Art Levinson  ...  NaN23                                                NaN  ...  NaN24                                       Luca Maestri  ...  NaN25                                                NaN  ...  NaN26                                    Deirdre O’Brien  ...  NaN27                                                NaN  ...  NaN28                                          Ron Sugar  ...  NaN29                                                NaN  ...  NaN30                                         Sue Wagner  ...  NaN31                                                NaN  ...  NaN32                                      Jeff Williams  ...  NaN33                                                NaN  ...  NaN34  All current executive officers and directors a...  ...  NaN[35 rows x 9 columns]][                                                   0   1   ...                18  19 0                        Name  and principal position NaN  ...  Percent of Class NaN  1                    Thomas “Tony” K. Brown, Director NaN  ...               (5) NaN  2                           Pamela J. Craig, Director NaN  ...               (5) NaN  3                           David B. Dillon, Director NaN  ...               (5) NaN  4                          Michael L. Eskew, Director NaN  ...               (5) NaN  5                         Herbert L. Henkel, Director NaN  ...               (5) NaN  6                               Amy E. Hood, Director NaN  ...               (5) NaN  7                               Muhtar Kent, Director NaN  ...               (5) NaN  8                           Edward M. Liddy, Director NaN  ...               (5) NaN  9                           Dambisa F. Moyo, Director NaN  ...               (5) NaN  10                          Gregory R. Page, Director NaN  ...               (5) NaN  11                       Patricia A. Woertz, Director NaN  ...               (5) NaN  12  Michael F. Roman, Chairman of the Board, Presi... NaN  ...               (5) NaN  13  Inge G. Thulin, Former Executive Chairman of t... NaN  ...               (5) NaN  14  Nicholas C. Gangestad, Senior Vice President a... NaN  ...               (5) NaN  15  Ashish K. Khandpur, Executive Vice President, ... NaN  ...               (5) NaN  16  Julie L. Bushman, Executive Vice President, In... NaN  ...               (5) NaN  17  Joaquin Delgado, Former Executive Vice Preside... NaN  ...               (5) NaN  18  Michael G. Vale, Executive Vice President, Saf... NaN  ...               (5) NaN  19  All Directors and Executive Officers as a Grou... NaN  ...               (5) NaN  [20 rows x 20 columns]][                                                   0   1  ...                  6   7 0                                       Name/address NaN  ...  Percent  of Class NaN  1  The Vanguard Group(1) 100 Vanguard Blvd. Malve... NaN  ...               8.78 NaN  2  State Street Corporation(2) State Street Finan... NaN  ...               7.36 NaN  3  BlackRock, Inc.(3) 55 East 52nd Street New Yor... NaN  ...               7.30 NaN  [4 rows x 8 columns]]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Html5