Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于特定列标题提取HTML表-Python_Python_Html_Beautifulsoup_Scrape - Fatal编程技术网

基于特定列标题提取HTML表-Python

基于特定列标题提取HTML表-Python,python,html,beautifulsoup,scrape,Python,Html,Beautifulsoup,Scrape,我正在尝试从以下内容中提取html表 例如,第44页的2019年董事薪酬表。我认为该表没有特定的id,例如“补偿表”等。。要提取该表,我只能考虑匹配列名或关键字,如“股票奖励”或“所有其他薪酬”,然后获取相关表 是否有一种基于列名提取这些表的简单方法?或者更简单的方法 谢谢 我在抓取HTML表格方面相对较新。。我的代码如下 from bs4 import BeautifulSoup import requests url = 'https://www.sec.gov/Archives/edgar

我正在尝试从以下内容中提取html表

例如,第44页的2019年董事薪酬表。我认为该表没有特定的id,例如“补偿表”等。。要提取该表,我只能考虑匹配列名或关键字,如“股票奖励”或“所有其他薪酬”,然后获取相关表

是否有一种基于列名提取这些表的简单方法?或者更简单的方法

谢谢

我在抓取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')

当然可以这样做,请根据使用
match
attrs
使用
read\u html
函数

将熊猫作为pd导入
df=pd.read\u html(
"https://www.sec.gov/Archives/edgar/data/66740/000120677420000907/mmm3661701-def14a.htm,attrs={'style':'边框折叠:折叠;宽度:100%;font:9pt Arial,Helvetica,Sans Serif'},match=“非员工董事”)
打印(df)
df[0]。到_csv(“data.csv”,index=False,header=False)
输出:


预期的输出是什么?@BittoBennichan整个表格非常感谢-这很有效。如果我们更进一步,您是否认为可以通过许多不同的html文件来迭代它。可能出现的问题是,如果有多个表包含“非员工董事”,或者格式不一致。例如,3M(如上)可能使用“非员工董事”,而苹果可能使用“外部董事”。有什么想法吗?@Patriots\u 25您可以匹配
attrs
和position
[]
,只要它始终处于相同的位置!明白-所以,如果我们看一下苹果公司的文件,除了它有很多不同的列标题外,还包括了相同的表格。你能想出任何方法来提取这些表吗?@Patriots\u 25到底是哪一个表?共享此链接是否适用于屏幕截图?如果有效,请查看数据是如何相同的,但文件管理器之间没有一致性。例如,AAPL将所有数据放在一个表中。。。嗯,它被分成了两张桌子